【问题标题】:Max count of a list of tuples元组列表的最大计数
【发布时间】:2025-12-04 17:35:01
【问题描述】:

我有一个这样的元组列表:-

l = [(1, 2, 'ABC'), (3, 2, 'LLL'), (4, 1, 'kkk')]

我想获得具有最大计数的项目。基本上我只是比较每个元组中的第二个元素并计算最大次数。

上面的输出应该是 2,因为 2 是所有元组中出现次数最多的元素。

另一个例子:-

a = [ [("l", 4, 'ABC'), ("k", 1, 'LLL'), ("j", 1, 'kkk')]

上面的输出应该是 1,因为 1 是所有元组中出现次数最多的。

如何做到这一点?

【问题讨论】:

  • 一个人尝试过什么,当一个人这样做时发生了什么?
  • 使用字典计算问题通常非常简单。您是否尝试过任何事情并遇到问题?如果是这样,请发布您的代码,以便我们为您提供帮助。
  • 我尝试使用集合中的计数器,但无法让它适用于我的数据类型。计数器(a).most_common(1)

标签: python list count tuples counter


【解决方案1】:

我会使用Counteritemgetter

from operator import itemgetter
from collections import Counter

l = [(1, 2, 'ABC'), (3, 2, 'LLL'), (4, 1, 'kkk')]
print(Counter(map(itemgetter(1), l)).most_common(1)[0][0])

打印2

【讨论】:

  • 谢谢。但是你能解释一下使用的变量吗? itemgetter(1) 是做什么的? .most_common(1)[0][0] 中传递了什么值?
  • @skyfail:请谷歌一下。除了这里提到的功能,你会学到更多的东西
  • @skyfail itemgetter(n) 是写lambda item: item[n]的替代版本