[英]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.