lista = [100, 200, 300]
listb = [10, 20, 30]
使用Python 2.7,如果我想定義,將採取的第一個元素,從列表中選擇一個,並把它添加到列表B的第一個元素,然後通過迭代函數的函數以這種方式列出,我將如何做?有沒有辦法設置它可以爲任何數目的列表執行此操作的函數?創建使用兩個或多個列表
lista = [100, 200, 300]
listb = [10, 20, 30]
使用Python 2.7,如果我想定義,將採取的第一個元素,從列表中選擇一個,並把它添加到列表B的第一個元素,然後通過迭代函數的函數以這種方式列出,我將如何做?有沒有辦法設置它可以爲任何數目的列表執行此操作的函數?創建使用兩個或多個列表
您可以將列表理解與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模式,你也可以結合使用map
與add
操作:
from operator import add
def method (lista, listb):
return map(add,lista,listb)
謝謝。作爲一名初學者,我想知道如何通過zip?這正是我正在尋找的,但我沒有在文檔或谷歌搜索中看到。 – DataNoob
有很多在線的Python課程可以讓你通過具體的例子。這通常是一個很好的起點,如果你遇到了一個實現,你也可以在這裏提出進一步的問題。我遵循這個過程,但還有更多可用:https://www.udacity.com/course/data-wrangling-with-mongodb--ud032 – Jaco
[內置函數](https://docs.python .org/3/library/functions.html)的文檔頁面值得一讀。 – kindall
一般的解決方法:
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]
Stackoverflow不是一個代碼編寫服務,首先編寫一個函數,將您的列表作爲參數並從那裏開始。 – IanAuld