[英]Make one liner code for list unstacking in Python
max_depth = [[i]*36 for i in range(1,11)]
max_depth = [j for k in max_depth for j in k]
我想在一行中转换上面的代码。
不是使用[i]*36
创建嵌套列表,而是添加另一个for
来检索i
36
次:
[i for i in range(1,11) for _ in range(36)]
这相当于:
max_depth = []
for i in range(11):
for _ in range(36):
max_depth.append(i)
使用itertools
模块:
from itertools import chain
max_depth = list(chain.from_iterable([i]*36 for i in range(1,11)))
使用itertools
更进一步,
from itertools import chain, repeat
max_depth = list(chain.from_iterable(repeat(i, 36) for i in range(1,11)))
最直接的解决方案:
[j for k in [[i]*36 for i in range(1,11)] for j in k]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.