繁体   English   中英

读取列表列表并输出为字典,每个键的值计数

[英]Read list of lists and output as dictionary, the count of values per key

我有一个这样的清单清单

list1=[['a', '2'] ['a', '1'] ['b', '3'] ['c', '2'] ['b', '1'] ['a', '1']['b', '1'] ['c', '2']['b', '3'] ['b', '1']]

我想遍历这个并找出每个第一项的编号:

a:[2,1,1] b:[3,1,3,1] c:[2,2]

最后,它应该打印每个键的计数并作为字典输出

{'a': 3, 'b':4, 'c':2}

中间步骤不需要输出。

请帮忙

使用collections.Counter

如果我理解正确,您想知道每个“键”出现的次数。 以下代码将执行此操作:

d = Counter(x[0] for x in list1)

绝对可以将其压缩,但是您可以创建每个键的字典到每个值的列表:

d = {}
for key, val in list1:
    if key not in d:
        d[key] = []
    d[key].append(val)

然后将列表推导和dict()构造函数一起用于最终结果:

d2 = dict((k, len(vallist)) for k, vallist in d.iteritems())

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM