2017-04-08 9 views
0

新しい要素を生成するために、forループ内のリストの最後の要素を使用します。ここに私の問題のおもちゃの例である:forループのリストの最後の要素の使い方は?

a = [1] 
    a += [a[-1]+i for i in range(10)] 

が、それは唯一の1と最後の要素を考慮して、新しい最後の要素を見つけるために、forループを通過しません。この問題を解決する方法を教えてください。

答えて

0

はこれを試してみてください:リスト内包を使用して

a = [1] 
for i in range(10): 
    a.append(a[-1]+i) 
print(a) 

は、各新しい反復で配列の新しい最後の値をとるが、通常のforループ意志を使用しません。

+0

を。 – user36729

+0

これはリストの理解よりも遅いとは思わない。あなたが上でやっていることは、リストの理解の中にあるループでもあります。 – abagshaw

1

私は、コードを実行すると、次の答えました:私はちょうど高速なコードを実行するには、このようにループのために持っていたくなかった

In [2]: a = [1] 

In [3]: a += [a[-1]+i for i in range(1,10)] 

In [4]: a 
Out[4]: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 
+0

いいえ、たとえば4番目の要素は4ではありません。 – user36729

+1

範囲関数は0から9を生成するので、 から始めると、範囲内のiに対してはa + = [a [-1] + i )]を押すと、[1,2,3,4,5,6,7,8,9,10]という出力が得られます。 – babu7

関連する問題