我有一个嵌套列表,例如lst = [(123, 'bbb', 'bcd'), (245, 'brb', 'gsh'), (832, 'sge', 'hsw'), (832, 'sge', 'aww'), (123, 'sge', 'hsw'), (123, 'sse', 'hsw')] 我需要计算此列表中嵌套列表中有多少次相同的第一项。输出应如下所示123 - 3 times, 832 - 2 times, 245 - 1 time.我阅读了集合模块,但无法理解如何实现它以及它在这里是否有用。
1 回答
呼啦一阵风
TA贡献1802条经验 获得超6个赞
只需在元组的第一项列表中使用 :Counter
from collections import Counter
lst = [(123, 'bbb', 'bcd'), (245, 'brb', 'gsh'), (832, 'sge', 'hsw'),
(832, 'sge', 'aww'), (123, 'sge', 'hsw'), (123, 'sse', 'hsw')]
Counter((tup[0] for tup in lst))
# Counter({123: 3, 245: 1, 832: 2})
(我使用了生成器表达式而不是列表,因此不会生成中间列表。
添加回答
举报
0/150
提交
取消