我有两个列表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] 我怎么能这样做?
答案 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)