0

私は非常に奇妙なことに気づきました。どこが間違っているのかを調べてみたところ、何らかの理由でnest[0]リストがループの途中で変化し続けていることに気付きました。

>>> nest = [['prefix'],['line 1'],['line 2']]
>>> for part in nest[1:]:
...     list = nest[0]
...     list += part
...     print list

私が得る出力は次のとおりです。

['prefix', 'line 1']
['prefix', 'line 1', 'line 2']

一方、私が必要とするのは:

['prefix', 'line 1']
['prefix', 'line 2']

誰かがなぜこれが起こるのか説明できますか? 私はとても愚かなことをしているかもしれません。

4

3 に答える 3

0

list = nest[0]ネスト[0]へのポインターを変数名に割り当てることを意味しますlist

期待どおりの出力が必要な場合は、元のリストに影響を与えないように新しいリストを作成する必要があります。

nest = [['prefix'],['line 1'],['line 2']]
for part in nest[1:]:
    list = nest[0] + part
    print list

nest[0] + part新しい値を作成し、に割り当てますlist

于 2013-06-01T02:21:24.537 に答える