def f1(x): return [(x+1)*2-1, (x+1)*2-1]
def f2(x): return [(x+1)*2, (x+1)*2]
[[f1(i), f2(i)] for i in np.arange(3)]
这是生成list
3个列表对元素的代码:
[[[1, 1], [2, 2]], [[3, 3], [4, 4]], [[5, 5], [6, 6]]]
但是,我想通过 list
循环一行获得for
,如下所示。
[[1, 1], [2, 2], [3, 3], [4, 4], [5, 5], [6, 6]]
这就是多行的工作原理:
n = []
for i in np.arange(3):
n += [f1(i), f2(i)]
这就像尝试每次编写2个元素,我不知道如何为一行代码实现+=
。我怎么能这样做?
答案 0 :(得分:1)
[x for i in np.arange(3) for x in [f1(i), f2(i)]]
使用包含两个for
子句的列表推导。
答案 1 :(得分:0)
我可以这样做:
[f1(i) for i in np.arange(3)] + [f2(i) for i in np.arange(3)]
但还有更好的方法吗?