[英]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.