计数嵌套列表中的元素

时间:2020-03-30 14:04:58

标签: python python-3.x

我有一个嵌套列表,例如

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.

我阅读了有关collections模块的信息,但不了解如何实现它以及在这里是否有用。

1 个答案:

答案 0 :(得分:5)

只需在元组的第一项列表上使用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})

(我使用了生成器表达式而不是列表,因此没有建立中间列表。)