在图元组列表中寻找特定项目的最小索引。

问题描述 投票:0回答:1

我有一个元组列表,每个元组中有3个项目。我正在寻找每个元组中所有第三个值的最小值的索引位置。

下面是一个元组的列表,作为一个例子。

[(0, 3, 2), (4, 2, 6), (5, 1, 4), (2, 9, 8)]

我正在寻找的值是列表中0的索引位置,因为第一个元组包含了元组中所有第三项的最小值2。

EDIT: 我知道我可以直接把每个值放到一个新的列表中,但是有没有更干净的方法?

python tuples minimum
1个回答
0
投票

numpy 为这个问题提供了一个非常优雅的解决方案。

ls = [(0, 3, 2), (4, 2, 6), (5, 1, 4), (2, 9, 8)]
ar = np.array(ls)
np.argmin(ar[:,2])

给你

0

编辑:如果你的第三个元素是正确的数字而不是日期时间,另一个可能的numpy解决方案是:

如果你的第三个元素是一个合适的数字而不是日期时间, 另一个可能的numpy解决方案是:

arr1 = np.array([a[2] for a in ls])
np.argmin(arr1)

0
投票

你可以建立一个新的列表 tuple_third_item_list 第三元素 list_item 然后从新创建的列表中找到最小元素的索引。

list_item = [(0, 3, 2), (4, 2, 6), (5, 1, 4), (2, 9, 8)]
tuple_third_item_list = [ i[2] for i in list_item]
min_element = min(tuple_third_item_list)
min_element_index = tuple_third_item_list.index(min_element)
print(min_element_index)

min_element_index 给出每个元组中所有第三个值的最小值的索引。

© www.soinside.com 2019 - 2024. All rights reserved.