我可以使用 Python 的 Min 函数返回所有最小元组的列表吗?

Posted

技术标签:

【中文标题】我可以使用 Python 的 Min 函数返回所有最小元组的列表吗?【英文标题】:Can I return a list of ALL min tuples, using Python's Min function? 【发布时间】:2013-06-25 11:59:42 【问题描述】:

假设我有一个元组列表,如下所示:

listo = [('a','1'),('b','0'),('c','2'),('d','0')]

如果我想要最低的元组,基于每个元组的第二个索引,我可以使用lambda 函数自定义 min 函数,如下所示:

min(listo, key=lambda x: x[1])

就目前而言,此代码将返回:

In [31]: min(listo, key=lambda x: x[1])
Out[31]: ('b', '0')

但这只给了我一个元组,而且只有它遇到的第一个。如果我想要所有 min 元组怎么办?所以它返回类似:

In [31]: min(listo, key=lambda x: x[1])
Out[31]: [('b', '0'),('d','0')]

关于如何实现这一点的任何建议?

【问题讨论】:

【参考方案1】:

您可以先搜索一个最小值,然后根据找到的最小值查找另一个最小值。

listo = [('a','1'),('b','0'),('c','2'),('d','0')]
minValue = min(listo, key=lambda x: x[1])[1]
minValueList = [x for x in listo if x[1] == minValue]

另一种方法可能是创建自己的最小函数,该函数使用某种最小值列表,但对于更大的问题可能会慢得多。

【讨论】:

很好,我已经在使用第二种方法,但正在寻找一种更“Pythonic”的方法。我喜欢这个,谢谢。

以上是关于我可以使用 Python 的 Min 函数返回所有最小元组的列表吗?的主要内容,如果未能解决你的问题,请参考以下文章

python中min函数怎么用

Python2 - 在 None 类型上使用 min/max

Python中的常用内置函数都有哪些呢?

Python 输入一串数字,对其排序或找寻max或min值

python让列表存储1-10000的数字

Python Tuple(元组) min()方法