![](/img/trans.png)
[英]Concatenating two lists of Strings element wise in Python without Nested for loops
[英]Summing two lists NOT element wise in python without using for loop
我试图添加两个列表而不使用for循环(内置函数?,生成器?)
例如,让我们使用以下列表:
a = [1,2,3]
b = [10,15,19]
我想要以下结果:
c = [11,12,13,16,17,18,20,21,22]
我该怎么做? 请记住,使用循环结构会得到我想要的结果,但是由于我使用的是大型列表,因此我希望有一种更聪明的方法。
这有效:
import itertools
a = [1,2,3]
b = [10,15,19]
[x+y for x,y in itertools.product(b,a)]
#>> [11, 12, 13, 16, 17, 18, 20, 21, 22]
这使用了for循环,但是很紧凑:
[i + j for i in b for j in a ]
如果numpy
可用:
import numpy as np
print (np.array(a)+np.array(b)[:,None]).flatten().tolist()
# [11, 12, 13, 16, 17, 18, 20, 21, 22]
它仍然使用迭代,但是被埋在numpy C代码中。
这将计算一个外部总和,然后对其进行展平并将其返回到列表中
array([[11, 12, 13],
[16, 17, 18],
[20, 21, 22]])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.