对嵌套列表中的元素进行计数

2024-05-21 08:31:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个嵌套列表,比如

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模块的内容,但不了解如何实现它,以及它在这里是否有用


Tags: 模块内容列表timecollectionsssebbbsge
1条回答
网友
1楼 · 发布于 2024-05-21 08:31:35

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

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

相关问题 更多 >