比较两个列表以选择最大值

时间:2015-09-29 19:38:26

标签: python list

我有两个列表l1和l2:

l1 = [x,y,3,4,5]
l2 = [x,y,30,1,2]

我想创建一个列表l3,它是在列表的第3个元素中具有最大值的列表(在上面的示例中,它将是l1中的3和l2中的30)。在上面的例子中     l3 = [x,y,30,1,2] 我怎么能这样做?

2 个答案:

答案 0 :(得分:4)

您可以使用key的{​​{1}}参数来获取包含较大元素max的列表

[2]

答案 1 :(得分:1)

考虑到您只是比较两个元素,您可以使用简单的if/else

l3 = l1 if l1[2] > l2[2] else l2

但请注意,您正在创建引用而不是副本。

如果您想要新的列表,则需要复制:

l3 = l1[:] if l1[2] > l2[2] else l2[:]

如果你没有复制任何更改,在这种情况下l2,因为它有更大的第三个元素将反映在l3中,反之亦然。

此外,如果列表中还有其他可变对象,则需要创建copy.deepcopy

from copy import deepcopy
l3 = deepcopy(l1 ) if l1[2] > l2[2] else deepcopy(l2)