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 模块,但无法理解如何实现它以及它在这里是否有用。
只需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)
(我使用了生成器表达式而不是列表,因此没有构建中间列表。)
| 归档时间: |
|
| 查看次数: |
45 次 |
| 最近记录: |