我有一个这样的嵌套列表:
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有条件地查找第三个索引的最大值,然后返回列表。
逻辑:
从每个嵌套列表中找到第二个索引的最小值
然后从每个嵌套列表中找到第3个索引的最大值
从a
返回满足1,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]