3

Python でリスト内の各項目を再割り当てしたい。

In [20]: l = [1,2,3,4,5]
In [21]: for i in l:
   ....:     i = i + 1
   ....:     
   ....:     

しかし、リストはまったく変更されませんでした。

In [22]: l
Out[22]: [1, 2, 3, 4, 5]

なぜこれが起こったのか知りたいです。リストの繰り返しを詳細に説明できる団体はありますか? ありがとう。

4

4 に答える 4

1

これは、Python が変数とそれらが参照する値を処理する方法によるものです。

リスト要素自体を変更する必要があります。

for i in xrange(len(l)):
  l[i] += 1
于 2013-04-16T07:13:58.267 に答える
1
>>> a = [1, 2, 3, 4, 5]
>>> a = [i + 1 for i in a]
>>> a
[2, 3, 4, 5, 6]
于 2013-04-16T07:28:21.050 に答える