3 回答

TA贡献1921条经验 获得超9个赞
您可以按以下方式执行此操作,使用keys()字典的count()方法和列表中的方法来计算每个元素的出现次数:
inDict = {'A': ['red', 'red', 'blue'], 'B': ['red', 'green'], 'C': ['blue', 'green']}
for key in inDict.keys():
print(key + ': ', end=" ")
print(", ".join([elem + ' ' + str(inDict[key].count(elem)) for elem in set(inDict[key])]))
结果:
A: blue 1, red 2
B: green 1, red 1
C: green 1, blue 1

TA贡献1784条经验 获得超7个赞
您可以创建一个dictwith collections.Counters:
from collections import Counter
d = {'A': ['red', 'red', 'blue'],
'B': ['red', 'green'],
'C': ['blue', 'green']}
counter_dict = { k: Counter(v) for k, v in d.items()}
for k, v in counter_dict.items():
print(f'{k}:', *(f'{i} {j}' for i, j in v.items()))
>>>A: red 2 blue 1
B: red 1 green 1
C: blue 1 green 1

TA贡献2080条经验 获得超4个赞
试试这个:
data = {
'A': ['red', 'red', 'blue'],
'B': ['red', 'green'],
'C': ['blue', 'green']
}
from collections import Counter
count = { key: Counter(colors) for key, colors in data.items() }
for key, colors in count.items():
print(key + ':', ', '.join('{} {}'.format(c, n) for c, n in colors.items()))
它会打印:
A: blue 1, red 2
C: blue 1, green 1
B: green 1, red 1
添加回答
举报