【问题标题】:Python - get element of list where value is the minimum of all elements [duplicate]Python - 获取列表元素,其中值是所有元素中的最小值[重复]
【发布时间】:2018-03-03 16:57:16
【问题描述】:

我有以下清单:

[[733.16584917887963, 123620000.0, 32111000.0, 301.0],
 [732.27472276611104, 123620001.0, 32111000.0, 302.3], 
 [731.39029416733558, 123620002.0, 32111000.0, 303.3], 
 [730.49893696170341, 123620003.0, 32111000.0, 303.9], 
 [729.61188100398681, 123620004.0, 32111000.0, 304.2]]

我希望这个列表的数组在这个数组的第一个元素中具有最小值。

最小值为:

729.61188100398681

我想作为输出:

[729.61188100398681, 123620004.0, 32111000.0, 304.2]

【问题讨论】:

  • 按第一个元素对列表进行排序。那么排序列表的第一个元素就是你想要的那个。
  • @Barmar 既然可以使用min(..., key=),为什么还要这样做?

标签: python arrays list


【解决方案1】:

您可以使用 sorted 和 lambda 函数来获取结果,就像这样:

my_list = [[733.16584917887963, 123620000.0, 32111000.0, 301.0],
[732.27472276611104, 123620001.0, 32111000.0, 302.3], 
[731.39029416733558, 123620002.0, 32111000.0, 303.3], 
[730.49893696170341, 123620003.0, 32111000.0, 303.9], 
[729.61188100398681, 123620004.0, 32111000.0, 304.2]]

sorted_lst = sorted(my_list,key=lambda elem:elem[0])

print sorted_lst[0]
#Output : [729.6118810039868, 123620004.0, 32111000.0, 304.2]

同样,您可以根据自己的选择更改任何元素的键。

【讨论】:

    【解决方案2】:

    对列表进行排序,取出第一个子列表:

    lista = [[733.16584917887963, 123620000.0, 32111000.0, 301.0],
     [732.27472276611104, 123620001.0, 32111000.0, 302.3], 
     [731.39029416733558, 123620002.0, 32111000.0, 303.3], 
     [730.49893696170341, 123620003.0, 32111000.0, 303.9], 
     [729.61188100398681, 123620004.0, 32111000.0, 304.2]]
    
    print(sorted(lista)[0]) # [729.6118810039868, 123620004.0, 32111000.0, 304.2]
    

    【讨论】:

      猜你喜欢
      • 2018-07-07
      • 2018-02-12
      • 2018-01-14
      • 1970-01-01
      • 1970-01-01
      • 2021-02-18
      • 1970-01-01
      • 2021-10-10
      • 2013-11-21
      相关资源
      最近更新 更多