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

我有一个这样的清单清单

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}

不需要输出中间步骤。


开满天机
浏览 230回答 2
2回答

30秒到达战场

绝对可以将其压缩,但是您可以创建每个键的字典到每个值的列表: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())

慕田峪9158850

使用collections.Counter:如果我理解正确,您想知道每个“键”出现的次数。下面的代码可以做到这一点:d = Counter(x[0] for x in list1)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python