如何同时合并两个列表?

list1=[a,b,c,d]

list2=[d,e,f,g]

我想要一个list3应该是这样的:


list3=[a-d,b-e,c-f,d-g]

请告诉我如何像我一样循环执行此操作,list1并且list2有许多实体。list1 和 list2 包含字符串。例如:


list1=['cat','dog']

list2=['dog','cat']

list3=['cat-dog','dog-cat']


一只甜甜圈
浏览 89回答 2
2回答

米脂

您可以将zip两个列表放在一起并同时迭代它们。list1=[a,b,c,d]list2=[d,e,f,g]list3 = [x-y for x,y in zip(list1,list2)]编辑:我假设你的列表中只有整数,如果你想对字符串做同样的事情,你可以这样做:list1 = ["a", "b", "c", "d"]list2 = ["d", "e", "f", "g"]list3 = ["-".join([x, y]) for x, y in zip(list1, list2)]

撒科打诨

如果您的列表可以有不同的长度,请使用zip_longest:from itertools import zip_longestlist3 = [x-y for x,y in zip_longest(list1,list2, fillvalue=0)]如果列表具有相同的长度,它的行为就像通常的一样zip,如果不是,它用(在这种情况下是零)填充最短的列表fillvalue以匹配另一个的长度,而不是忽略剩余的元素。如果您的列表包含字符串,则最好使用字符串操作方法并更改填充值。from itertools import zip_longestlist3 = [str(x) + '-' + str(y) for x,y in zip_longest(list1,list2, fillvalue="")]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python