2016-02-20 56 views
0
lista = [100, 200, 300] 
listb = [10, 20, 30] 

使用Python 2.7,如果我想定義,將採取的第一個元素,從列表中選擇一個,並把它添加到列表B的第一個元素,然後通過迭代函數的函數以這種方式列出,我將如何做?有沒有辦法設置它可以爲任何數目的列表執行此操作的函數?創建使用兩個或多個列表

+2

Stackoverflow不是一個代碼編寫服務,首先編寫一個函數,將您的列表作爲參數並從那裏開始。 – IanAuld

回答

4

您可以將列表理解與zip結合使用。 zip結合了兩個列表,讓你來總結它的元素:

[a+b for a,b in zip(lista, listb)] 

你的方法只會像這樣

def method(lista,listb): 
    return [a+b for a,b in zip(lista, listb)] 

或者,如果你喜歡的MapReduce模式,你也可以結合使用mapadd操作:

from operator import add 
def method (lista, listb): 
    return map(add,lista,listb) 
+0

謝謝。作爲一名初學者,我想知道如何通過zip?這正是我正在尋找的,但我沒有在文檔或谷歌搜索中看到。 – DataNoob

+0

有很多在線的Python課程可以讓你通過具體的例子。這通常是一個很好的起點,如果你遇到了一個實現,你也可以在這裏提出進一步的問題。我遵循這個過程,但還有更多可用:https://www.udacity.com/course/data-wrangling-with-mongodb--ud032 – Jaco

+0

[內置函數](https://docs.python .org/3/library/functions.html)的文檔頁面值得一讀。 – kindall

0

一般的解決方法:

list_a = [1, 2, 3] 
list_b = [5, 7, 9] 
list_c = [100, 200, 300] 

lists = [list_a, list_b, list_c] 

print [sum(k) for k in zip(*lists)] # [106, 209, 312]