在python列表中查找并分组连续字符串及其频率

问题描述 投票:-1回答:2

说我有清单:

x_list =  ['green', 'red', 'green', 'red', 'green', 'green', 'red', 'red']

我想得到:

green : 2
red : 2
green, green : 1
red, red : 1

说明:仅单色计数,仅双倍计数(但以连续方式),类似地适用于更多

python python-3.x list itertools
2个回答
1
投票

您可以使用defaultdictdefaultdict

itertools.groupby

0
投票

您可以使用itertools.groupbyfrom itertools import groupby from collections import defaultdict d = defaultdict(int) for _,v in groupby(x_list): v = list(v) d[', '.join(list(v))] += 1 print(d) defaultdict(int, {'green': 2, 'red': 2, 'green, green': 1, 'red, red': 1})

groupby
© www.soinside.com 2019 - 2024. All rights reserved.