【问题标题】:find the min of the second index, then find the max of the third index of a list Python找到第二个索引的最小值,然后找到列表 Python 的第三个索引的最大值
【发布时间】:2018-05-20 05:01:45
【问题描述】:

我有一个这样的嵌套列表:

a = [[1, 3, 3], 
   [7, 2, 6], 
   [4, 2, 8]]

我想转置它并找到第二个索引的最小值,然后是第三个索引的最大值,这样我得到的结果列表是 [4,2,8]。

我有以下内容:min(a, key=lambda x: x[1]),它可以帮助我找到第二个索引的最小值,即 2,但 Python 会选择 [7, 2, 6]。我希望 Python 有条件地查找第三个索引的最大值,然后返回列表。

逻辑:

  1. 从每个嵌套列表中查找第二个索引的最小值

  2. 然后从每个嵌套列表中找到第三个索引的最大值

  3. 从a返回满足1,2的实际嵌套列表

【问题讨论】:

  • 为什么要删除被否决的问题并重新发布?

标签: python list


【解决方案1】:

这是一种变通解决方案,但代码如下:

min(a, key=lambda x: (x[1], -x[2]))

找到由第二个索引和第三个索引的否定值组成的最小元组(ergo:第三个索引的最大值),返回你想要的结果:

>>> min(a, key=lambda x: (x[1], -x[2]))
`[4, 2, 8]`

【讨论】:

    【解决方案2】:

    你可以这样做:

    a = [[1, 3, 3],
       [7, 2, 6],
       [4, 2, 8]]
    
    min_no=min([i[1] for i in a])
    max_no=max([i[2] for i in a])
    for item in a:
        if min_no and max_no in item:
            print(item)
    

    输出:

    [4, 2, 8]
    

    【讨论】:

      猜你喜欢
      • 2022-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-07
      • 2021-03-25
      • 2013-05-24
      • 2018-04-22
      • 2010-10-06
      相关资源
      最近更新 更多