Python 查找两个列表的索引最大值

Python 查找两个列表的索引最大值,python,list,Python,List,假设我有两个列表: L1 = [2,4,1,6] L2 = [1,5,2,3] 输出应该是一个新列表,其中包含根据位置在L1或L2中找到的最大数字 示例输出: L3 = [2, 5, 2, 6] 如何做到这一点?一个可能的解决方案是压缩列表,然后应用max operation元素,这可以通过调用functionalmap在python中获得 L1 = [2,4,1,6] L2 = [1,5,2,3] L3 = map(max, zip(L1, L2)) # python2 L3 = list

假设我有两个列表:

L1 = [2,4,1,6]
L2 = [1,5,2,3]
输出应该是一个新列表,其中包含根据位置在L1或L2中找到的最大数字

示例输出:

L3 = [2, 5, 2, 6]

如何做到这一点?

一个可能的解决方案是压缩列表,然后应用max operation元素,这可以通过调用functional
map在python中获得

L1 = [2,4,1,6]
L2 = [1,5,2,3]
L3 = map(max, zip(L1, L2)) # python2
L3 = list(map(max, zip(L1, L2))) # python3
或通过列表理解更具python风格

L3 = [max(l1, l2) for l1, l2 in zip(L1, L2)]
或使用解包操作的稍短版本

L3 = [max(*l) for l in zip(L1, L2)]

这里有一个快速修复,在一组迭代中

list_a = [2,4,1,6]
list_b = [1,5,2,3]

max_list = [value if list_b[index]<value else list_b[index] for index, value in enumerate(list_a)]

print(max_list)
list_a=[2,4,1,6]
列表_b=[1,5,2,3]

max_list=[value if list_b[index]如果可以使用
numpy
,ufunc非常简单:


使用列表理解

l=[1,2,7]
m=[4,5,6]

max=[(l[i] if l[i]>m[i]  else m[i] ) for i in range(0,len(l))]
print(max)

您是如何尝试的,出现了什么问题?输入?还是输出?您尝试过的示例代码以及它不适用于您的原因如何?我将从开始介绍。添加一个和
max()
函数,您将在一行中找到解决方案。
l=[1,2,7]
m=[4,5,6]

max=[(l[i] if l[i]>m[i]  else m[i] ) for i in range(0,len(l))]
print(max)