簡體   English   中英

不同大小的總和列表 Python 3

[英]Sum lists of different size Python 3

我有兩個不同大小的列表: A= [0.1,0.2,0.3,0.4]B= [5,6]我想將兩個列表A+B相加為:

C = A+B =[0.1+5,0.2+5,0.3+6,0.4+6]=[5.1,5.2,6.3,6.4]

我嘗試了以下方法:

1-

 C= [sum(n,x) for n, sub in zip(B,A) for x in sub]

出現錯誤:'float' object is not iterable

2-

C=[x + y for x, y in zip(itertools.cycle(B), A)]

結果是:

C=[5.1,6.2,5.3,6.4]

任何建議

C=[A[i]+B[i//len(B)] for i in range(len(A))]
C = [x+y for x,y in itertools.zip_longest(A,B,fillvalue=0)]

編輯:我們在這里做的是列表理解。 它基本上是一個 for 循環,它將它使每個循環的每個項目放入列表中。 當一個可迭代對象用完時,內置的 zip function 將停止將可迭代對象“壓縮”在一起。 我們使用 itertools.zip_longest 是因為我們不想簡單地丟失較長列表中的數字,因為我們有一個較短的列表。 出於顯而易見的原因,填充值為 0。 因此,對於我們 zip function 中的每次迭代,我們只需將它們加在一起。 希望我解釋清楚。

暫無
暫無

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

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