我有一个元组列表,每个元组中有3个项目。我正在寻找每个元组中所有第三个值的最小值的索引位置。
下面是一个元组的列表,作为一个例子。
[(0, 3, 2), (4, 2, 6), (5, 1, 4), (2, 9, 8)]
我正在寻找的值是列表中0的索引位置,因为第一个元组包含了元组中所有第三项的最小值2。
EDIT: 我知道我可以直接把每个值放到一个新的列表中,但是有没有更干净的方法?
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)
你可以建立一个新的列表 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
给出每个元组中所有第三个值的最小值的索引。