如何计算列表中子列表的出现次数并将它们显示为dict

我有下一个列表:

lst = [["Orange", "Carrot"], ["Green", "Apple"], ["Yellow", "Banana"], ["Orange", "Pumpkin"], ["Green", "Apple"]]

我如何将它们显示为以下字典?:

dict_sum = {'Orange': {'Carrot': 1, 'Pumpkin': 1}, 'Green': {'Apple': 2}, 'Yellow': {'Banana': 1}}

回答

你可以使用一个defaultdict的计数器构建词典:

from collections import defaultdict, Counter

lst = [["Orange", "Carrot"], ["Green", "Apple"], ["Yellow", "Banana"], ["Orange", "Pumpkin"], ["Green", "Apple"]]

d = defaultdict(Counter)

for key, v in lst:
    d[key][v] += 1

res = {k: dict(v) for k, v in d.items()}
print(res)

输出

{'Orange': {'Carrot': 1, 'Pumpkin': 1}, 'Green': {'Apple': 2}, 'Yellow': {'Banana': 1}}


以上是如何计算列表中子列表的出现次数并将它们显示为dict的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>