2016-03-22 17 views
0

のPythonのリスト、私は完全に罰金ですセット乗算

>>> a = [1]*3 
>>> a 
[1,1,1] 
>>> a[0] = a[0]+1 
>>> a 
[2,1,1] 

を行うが、私はセットで同じことが非常に奇妙な行動である以下の

>>> a = [set()]*3 
>>> a 
[set([]), set([]), set([])] 
>>> a[0].add(1) 
>>> a 
[set([1]), set([1]), set([1])] 

、任意の説明をigetがありませんこのため?

答えて

0

この動作のための最も論理的な説明は、それが1セットへのポインタとして、すべての3セットを()見ているということですが、あなたはリストに追加し、それらを変異する前にセットを宣言しようとしましたか?