为了账号安全,请及时绑定邮箱和手机立即绑定

如何同时合并两个列表?

如何同时合并两个列表?

一只甜甜圈 2022-10-18 14:41:52
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']
查看完整描述

2 回答

?
米脂

TA贡献1836条经验 获得超3个赞

您可以将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)]


查看完整回答
反对 回复 2022-10-18
?
撒科打诨

TA贡献1934条经验 获得超2个赞

如果您的列表可以有不同的长度,请使用zip_longest:


from itertools import zip_longest


list3 = [x-y for x,y in zip_longest(list1,list2, fillvalue=0)]

如果列表具有相同的长度,它的行为就像通常的一样zip,如果不是,它用(在这种情况下是零)填充最短的列表fillvalue以匹配另一个的长度,而不是忽略剩余的元素。


如果您的列表包含字符串,则最好使用字符串操作方法并更改填充值。


from itertools import zip_longest


list3 = [str(x) + '-' + str(y) for x,y in zip_longest(list1,list2, fillvalue="")]


查看完整回答
反对 回复 2022-10-18
  • 2 回答
  • 0 关注
  • 88 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信