【问题标题】:Finding minimum index of specific item in list of tuples在元组列表中查找特定项目的最小索引
【发布时间】:2020-09-15 00:29:31
【问题描述】:

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

这里以元组列表为例:

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

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

编辑:我知道我可以将每个值放入一个新列表中,但是有没有更简洁的方法呢?

【问题讨论】:

    标签: python tuples minimum


    【解决方案1】:

    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)
    

    【讨论】:

    • 对不起,感谢您的回复,但我没有提到前两个值实际上是日期时间,不能存储在 numpy 数组中。
    【解决方案2】:

    您可以创建一个新列表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 给出每个元组所有第三个值中最小值的索引。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-29
      • 2016-01-25
      • 2014-10-13
      • 2016-06-09
      • 2021-07-16
      • 2019-05-27
      • 1970-01-01
      相关资源
      最近更新 更多