找到第二个索引的min,然后找到列表Python的第三个索引的最大值

时间:2017-12-06 10:35:50

标签: python list

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

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

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

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

逻辑:

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

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

  3. a返回满足1,2

    的实际嵌套列表

2 个答案:

答案 0 :(得分:0)

这是一种解决方法,但代码如下:

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

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

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

答案 1 :(得分:0)

你可以这样做:

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]