2 回答

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超3個(gè)贊
您可以將zip兩個(gè)列表放在一起并同時(shí)迭代它們。
list1=[a,b,c,d]
list2=[d,e,f,g]
list3 = [x-y for x,y in zip(list1,list2)]
編輯:我假設(shè)你的列表中只有整數(shù),如果你想對(duì)字符串做同樣的事情,你可以這樣做:
list1 = ["a", "b", "c", "d"]
list2 = ["d", "e", "f", "g"]
list3 = ["-".join([x, y]) for x, y in zip(list1, list2)]

TA貢獻(xiàn)1934條經(jīng)驗(yàn) 獲得超2個(gè)贊
如果您的列表可以有不同的長(zhǎng)度,請(qǐng)使用zip_longest:
from itertools import zip_longest
list3 = [x-y for x,y in zip_longest(list1,list2, fillvalue=0)]
如果列表具有相同的長(zhǎng)度,它的行為就像通常的一樣zip,如果不是,它用(在這種情況下是零)填充最短的列表fillvalue以匹配另一個(gè)的長(zhǎng)度,而不是忽略剩余的元素。
如果您的列表包含字符串,則最好使用字符串操作方法并更改填充值。
from itertools import zip_longest
list3 = [str(x) + '-' + str(y) for x,y in zip_longest(list1,list2, fillvalue="")]
添加回答
舉報(bào)