2016-02-06 126 views
-1

可以說我有2所列出:找到兩個列表的索引明智的最大值

L1 = [2,4,1,6] 
L2 = [1,5,2,3] 

輸出應該是包含在L1或L2發現基於自己的立場上最大號的新名單。

輸出示例:

L3 = [2, 5, 2, 6] 

怎麼辦呢?

+5

你如何試圖做到這一點,這有什麼問題呢? – jonrsharpe

+0

輸入?或輸出?你試過的示例代碼和它不適合你的原因如何? – Vorsprung

+0

我將以[我如何在Python中並行遍歷兩個列表?](http://stackoverflow.com/q/1663807)開始您的工作。添加一個[list comprehension](https://docs.python.org/2/tutorial/datastructures.html#list-comprehensions)和'max()'函數,你就可以在一行中找到解決方案。 –

回答

3

一個可能的解決方案是壓縮您的列表,然後在施加最大的操作元素,明智的,它可以在Python通過呼叫通過列表解析來獲得功能map

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)] 
1

這是一個快速修復,在一組迭代中!

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) 

顯示:[2, 5, 2, 6]