2017-05-24 17 views
1

私はリストaを持っています。それをリストlに追加してリストaを修正し、再度lに追加します。リストに修正リストを追加する

私のコードは次のとおりです。私はl[[1], [1,2]]になりたいながら

a = [] 
l = [] 
a.append(1) 
l.append(a) 

a.append(2) 
l.append(a) 

しかし、lは今、= [[1,2],[1,2]]です。

私は次のように私のコードを変更することで解決:

a = [] 
l = [] 
a.append(1) 
l.append(list(a)) 

a.append(2) 
l.append(list(a)) 

私の質問は次のとおりです。すでにaとして追加lでも、以前の項目を変更aを含むリストlに変更リストaを追加する理由を操作?

答えて

5

これは、Pythonのリストが変更可能なオブジェクトであるためです。つまり、リストに変数を代入すると、そのリストに "参照"を渡しています(cポインタのように)。

+0

ありがとうございました。時刻 'i + 1'に変更されたリストの時刻' i'に値を保持する方法はありますか?私の解決策は正しいのですか? – Ale

関連する問題