从坐标元组列表中选择最小值
Selecting smallest value from a list of coordinate tuples
我正在尝试像这样遍历元组列表:
[(0, 0.0083553666846612491), (1, 0.0054999681509501821)]
并找到元组右侧的最小值,然后将伴随的左侧值保存到变量中。
解决这个问题的最佳方法是什么?
您可以使用 min()
函数的 key
参数来查找第二个值最小的元组:
>>> l = [(0, 0.0083553666846612491), (1, 0.0054999681509501821)]
>>> smallest = min(l, key=lambda x: x[1])[0]
>>> smallest
1
此处 lambda 表达式用于 select 每个元组的第二项,min
在其比较中使用该值。 min()
returns 完整元组,因此您可以使用 [0]
.
提取第一项
您也可以使用 operator.itemgetter
:
>>> from operator import itemgetter
>>> smallest = min(l, key=itemgetter(1))[0]
>>> smallest
1
这应该有效:
min_tuple = min(your_list, key=lambda item: item[1])
所以我们提供了元组比较的方法
我正在尝试像这样遍历元组列表:
[(0, 0.0083553666846612491), (1, 0.0054999681509501821)]
并找到元组右侧的最小值,然后将伴随的左侧值保存到变量中。
解决这个问题的最佳方法是什么?
您可以使用 min()
函数的 key
参数来查找第二个值最小的元组:
>>> l = [(0, 0.0083553666846612491), (1, 0.0054999681509501821)]
>>> smallest = min(l, key=lambda x: x[1])[0]
>>> smallest
1
此处 lambda 表达式用于 select 每个元组的第二项,min
在其比较中使用该值。 min()
returns 完整元组,因此您可以使用 [0]
.
您也可以使用 operator.itemgetter
:
>>> from operator import itemgetter
>>> smallest = min(l, key=itemgetter(1))[0]
>>> smallest
1
这应该有效:
min_tuple = min(your_list, key=lambda item: item[1])
所以我们提供了元组比较的方法