【发布时间】:2020-09-15 00:29:31
【问题描述】:
我有一个元组列表,每个元组中有 3 个项目。我正在寻找每个元组中所有第三个值的最小值的索引位置。
这里以元组列表为例:
[(0, 3, 2), (4, 2, 6), (5, 1, 4), (2, 9, 8)]
我要查找的值是 0 列表中的索引位置,因为第一个元组包含元组中所有第三项的最小值 2。
编辑:我知道我可以将每个值放入一个新列表中,但是有没有更简洁的方法呢?
【问题讨论】:
我有一个元组列表,每个元组中有 3 个项目。我正在寻找每个元组中所有第三个值的最小值的索引位置。
这里以元组列表为例:
[(0, 3, 2), (4, 2, 6), (5, 1, 4), (2, 9, 8)]
我要查找的值是 0 列表中的索引位置,因为第一个元组包含元组中所有第三项的最小值 2。
编辑:我知道我可以将每个值放入一个新列表中,但是有没有更简洁的方法呢?
【问题讨论】:
numpy为此提供了一个非常优雅的解决方案。
ls = [(0, 3, 2), (4, 2, 6), (5, 1, 4), (2, 9, 8)]
ar = np.array(ls)
np.argmin(ar[:,2])
给你
0
编辑:
如果您的第三个元素是正确的数字而不是日期时间,另一种可能的 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 给出每个元组所有第三个值中最小值的索引。
【讨论】: