为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

开满天机 2021-03-29 08:32:54
我有一个这样的清单清单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}不需要输出中间步骤。
查看完整描述

2 回答

?
30秒到达战场

TA贡献1828条经验 获得超6个赞

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


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())


查看完整回答
反对 回复 2021-04-02
?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

使用collections.Counter

如果我理解正确,您想知道每个“键”出现的次数。下面的代码可以做到这一点:

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


查看完整回答
反对 回复 2021-04-02
  • 2 回答
  • 0 关注
  • 229 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信