计算嵌套列表中的元素

Mak*_*sim -2 python python-3.x

我有一个嵌套列表,比如

lst = [(123, 'bbb', 'bcd'), (245, 'brb', 'gsh'), (832, 'sge', 'hsw'), 
       (832, 'sge', 'aww'), (123, 'sge', 'hsw'), (123, 'sse', 'hsw')] 
Run Code Online (Sandbox Code Playgroud)

我需要计算这个列表中有多少次嵌套列表中有相同的第一项。输出应该是这样的

123 - 3 times, 832 - 2 times, 245 - 1 time.
Run Code Online (Sandbox Code Playgroud)

我阅读了 collections 模块,但无法理解如何实现它以及它在这里是否有用。

Thi*_*lle 5

只需Counter在元组的第一项列表上使用 a :

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})
Run Code Online (Sandbox Code Playgroud)

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