首页 > 解决方案 > 具有多个列表的字典中的字数

问题描述

我有如下字典的数据集

a = {123: [[a, b, c], [a, c, d]], 234: [[a, b, c], [a, c, d]]}

我想计算每个键的字数如下

{123:[(a,2),(b,1),(c,2),(d,1)], 234: [(a,2),(b,1),(c,2),(d,1)]}

我试图搜索示例,但无法理解如何使其适用于我的数据集

标签: pythonpython-3.x

解决方案


from collections import Counter
from itertools import chain

a = {

    123: [
        ["a", "b", "c"],
        ["a", "c", "d"]
    ],

    234: [
        ["a", "b", "c"],
        ["a", "c", "d"]
    ]

}

result = {key: list(Counter(chain(*value)).items()) for key, value in a.items()}
print(result)

输出:

{123: [('a', 2), ('b', 1), ('c', 2), ('d', 1)], 234: [('a', 2), ('b', 1), ('c', 2), ('d', 1)]}
>>> 

推荐阅读