[英]How do I add 2 elements for each iteration in a python shorthand list?
我想写一个像[i*2, i*3 for i in range(10)]
这样的列表,这样我就可以有一个[0, 0, 2, 3, 4, 6, 6, 9, 8, 12...]
(因此对于range(10)
中的每个元素,我想从两个计算中将 2 个元素添加到列表中)。
使用itertools.chain.from_iterable
或任何其他 Python 可迭代扁平化方法:
>>> list(itertools.chain.from_iterable([(i*2, i*3) for i in range(10)]))
[0, 0, 2, 3, 4, 6, 6, 9, 8, 12, 10, 15, 12, 18, 14, 21, 16, 24, 18, 27]
更新:
[ i*k for i in range(10) for k in (2, 3) ]
原来的:
只需通过列表理解保持简单:
[ i*k for i in range(10) for k in range(2,4) ]
列表理解中的两个 for 语句怎么样?
[i*j for i in range(10) for j in [2, 3]]
sum((map(lambda x: [x*2, x*3], range(10))), [])
output
[0, 0, 2, 3, 4, 6, 6, 9, 8, 12, 10, 15, 12, 18, 14, 21, 16, 24, 18, 27]
我们也可以这样做,没有任何循环。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.