簡體   English   中英

將兩個不同長度列表的元素相加成一個新列表

[英]Sum elements of two lists of different lengths into a new one

我正在嘗試學習 python 並且我正在做一些像這樣的基本練習。 我試過使用列表推導,但新創建的列表只有前兩個元素的總和。 如何使用列表理解將 L1 的剩余整數放入 L3 中?

L1 = [3, 7, 1, 54]
L2 = [0, 128]
L3 = [x+y for x,y in zip(L1, L2)]
for i in L3:
    print(i, end= " ")

使您的代碼工作的一種方法是將數組 L2 擴展到 L1 的長度,例如用零填充它:

L1 = [3, 7, 1, 54]
L2 = [0, 128]

# extend the L2 array by the difference in length of both arrays.
L2.extend([0] * (len(L1) - len(L2)))

L3 = [x+y for x,y in zip(L1, L2)]
for i in L3:
    print(i, end= " ")

另一種方法是使用itertools.zip_longest ,請參閱此答案

下面的代碼將起作用。

import itertools


def add_data(list1, list2):
    temp_list= list(itertools.zip_longest(list1, list2, fillvalue= 0))
    return [x+y for x,y in temp_list]


if __name__ == '__main__':
    l3= add_data([3, 7, 1, 54],[0, 128])
    print(l3)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM