简体   繁体   English

创建每个迭代包含多个元素的Python列表

[英]Create a Python List with Multiple Elements per Iteration

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)]

This is the code to generate a list of 3 list-pairs elements: 这是生成3个列表对元素的list的代码:

[[[1, 1], [2, 2]], [[3, 3], [4, 4]], [[5, 5], [6, 6]]]

However, I would like to obtain a list like below with one line of for loop . 但是,我想获得像下面这样的list其中包含一行for循环

[[1, 1], [2, 2], [3, 3], [4, 4], [5, 5], [6, 6]]

This is how it works with multi-lines: 这就是多行的工作方式:

n = []
for i in np.arange(3):
    n += [f1(i), f2(i)]

It's like trying to compose 2 elements per time where I don't know how to achieve += for one line of code. 就像每次尝试组成2个元素,而我不知道如何为一行代码实现+= How can I do that? 我怎样才能做到这一点?

[x for i in np.arange(3) for x in [f1(i), f2(i)]]

使用具有两个for子句的列表理解。

I could do something like this: 我可以做这样的事情:

[f1(i) for i in np.arange(3)] + [f2(i) for i in np.arange(3)]

But is there any better way? 但是还有更好的方法吗?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM