2017-08-11 25 views
-3

1つのリストの変更を別のリストに反映させるにはどうすればよいですか?Pythonのリスト参照

lst = [0, 0] 
sublist = [lst[0], lst[0], lst[1], lst[1]] 
print sublist 
>> [0, 0, 0, 0] 
lst[0] = 1 
print sublist 
>> [0, 0, 0, 0] 
# But I would like to 
>> [1, 1, 0, 0] 

希望の結果を得るにはどうすればよいですか? 私の英語は申し訳ありません。

+3

リストではサポートされていません。あなたはこれを行うことで、あなたが解決しようとしている問題を解決する他の方法を見つける必要があります。 – user2357112

+2

Related:https://nedbatchelder.com/text/names.html – chepner

+1

エフェクトを伝播させるには、オブジェクトが変更可能であることを確認します。例では、 'lst'の要素を変更可能にする必要があります。 – nos

答えて

0

ありがとうございます!とった。

lst = [[] for i in range(2)] 
sublist = [lst[0], lst[0], lst[1], lst[1]] 
print lst 
print sublist 
lst[0].append(1) 
lst[1].append(2) 
print lst 
print sublist 
lst[1][0] = 0 
print lst 
print sublist 

>>[[], []] 
>>[[], [], [], []] 
>>[[1], [2]] 
>>[[1], [1], [2], [2]] 
>>[[1], [0]] 
>>[[1], [1], [0], [0]] 
関連する問題