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

元素-添加2个列表?

元素-添加2个列表?

繁花不似锦 2019-07-10 15:01:23
元素-添加2个列表?我现在有:list1 = [1, 2, 3]list2 = [4, 5, 6]我希望:[1, 2, 3] +  +  +[4, 5, 6]|| || ||[5, 7, 9]简单地按元素添加两个列表。我当然可以迭代这两个列表,但我不想这样做。是什么最毕达通的方式这么做?
查看完整描述

3 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

使用map带着operator.add:

>>> from operator import add

>>> list( map(add, list1, list2) )

[5, 7, 9]

zip对清单的理解:


>>> [sum(x) for x in zip(list1, list2)]

[5, 7, 9]

时间比较:

>>> list2 = [4, 5, 6]*10**5

>>> list1 = [1, 2, 3]*10**5

>>> %timeit from operator import add;map(add, list1, list2)

10 loops, best of 3: 44.6 ms per loop

>>> %timeit from itertools import izip; [a + b for a, b in izip(list1, list2)]

10 loops, best of 3: 71 ms per loop

>>> %timeit [a + b for a, b in zip(list1, list2)]

10 loops, best of 3: 112 ms per loop

>>> %timeit from itertools import izip;[sum(x) for x in izip(list1, list2)]

1 loops, best of 3: 139 ms per loop

>>> %timeit [sum(x) for x in zip(list1, list2)]

1 loops, best of 3: 177 ms per loop


查看完整回答
反对 回复 2019-07-10
?
慕雪6442864

TA贡献1812条经验 获得超5个赞

[a + b for a, b in zip(list1, list2)]


查看完整回答
反对 回复 2019-07-10
  • 3 回答
  • 0 关注
  • 514 浏览
慕课专栏
更多

添加回答

举报

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