Saya memiliki dua daftar menggunakan python, katakanlah:

lst = [1, 1, 2]
lst2 = [1, 1]

Dan saya mencoba untuk "menambahkan" elemen lst dengan lst2 sehingga saya mendapatkan: [2, 2, 2]

Saya telah mencoba melakukan:

lst + lst2

Ini hanya untukku [1, 1, 2, 1, 1,]

Bantuan apa pun akan sangat dihargai!

1
Xavier Goeas 12 Mei 2021, 23:21

3 jawaban

Jawaban Terbaik

Anda dapat menggunakan itertools.zip_longest dengan fillvalue=0:

from itertools import zip_longest

lst = [a + b for a, b in zip_longest(lst, lst2, fillvalue=0)]
print(lst)

Cetakan:

[2, 2, 2]
2
Andrej Kesely 12 Mei 2021, 20:25

Jika Anda lebih suka melakukannya tanpa iterator:

lst3 = [lst[i]+lst2[i] for i in range(min(len(lst), len(lst2)))]+lst[min(len(lst), len(lst2)):]+lst2[min(len(lst), len(lst2)):]
0
dev55555 12 Mei 2021, 20:26

Mungkin ini?

>>> import itertools
>>> [sum(pair) for pair in itertools.zip_longest(lst, lst2, fillvalue=0)]
[2, 2, 2]
3
BallpointBen 12 Mei 2021, 20:25