反復

2016-05-05 12 views
0
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)] 

これは3リスト・ペア要素のlist生成するためのコードであるごとに複数の要素を持つPythonのリストを作成します。しかし、私は以下のようなlistを取得したいと思います反復

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

forループの1行。

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

これは、マルチラインでどのように動作するかです:

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

私は1行のコードのための+=を達成する方法がわからないところそれは時間当たり2つの要素を構成しようとしているようなものです。どうやってやるの?私はこのような何かができ

答えて

1

2つのfor句でリスト内包表記を使用します。

+0

ありがとうございました!私はこれがコードの一行を行くことができると思います。しかし、[np.arange(3)のiの[xの[x1のf1(i)、f2(i)]]も動作します。それは 'for'命令がオプションであることを意味しますか? –

+0

ループの順序は重要です。あなたが書いたものは、まったく違うことをします。おそらくあなたが望むものではありません。 – user2357112

+0

ありがとうございました! –

0

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

をしかし、どのような良い方法はありますか?