说我有清单:
x_list = ['green', 'red', 'green', 'red', 'green', 'green', 'red', 'red']
我想得到:
green : 2
red : 2
green, green : 1
red, red : 1
说明:仅单色计数,仅双倍计数(但以连续方式),类似地适用于更多
您可以使用defaultdict
和defaultdict
:
itertools.groupby
您可以使用itertools.groupby
和from 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