を理解していない私は、この非常に単純なプログラムで何が起こっているのかについての簡潔な情報を見つけることができません。Pythonの変数の取り扱い、私はそれを
print 'case 1'
# a and b stay different
a = [1,2,3]
b = a
b = [4,5,6]
print 'a =',a
print 'b =',b
print
print 'case 2'
# a and b becomes equal
a = [1,2,3]
b = a
b[0] = 4
b[1] = 5
b[2] = 6
print 'a =',a
print 'b =',b
print
print 'case 3'
# a and b stay different now
a = [1,2,3]
b = a[:]
b[0] = 4
b[1] = 5
b[2] = 6
print 'a =',a
print 'b =',b
print
print 'case 4'
# now the funny thing
a=[1,2,[3]]
b=a[:]
b[0] = 4
b[1] = 5
b[2][0] = 6 # this modifies b and a!!!
この簡単なテストの出力は次のようになります。
case 1
a = [1, 2, 3]
b = [4, 5, 6]
case 2
a = [4, 5, 6]
b = [4, 5, 6]
case 3
a = [1, 2, 3]
b = [4, 5, 6]
case 4
a = [1, 2, [6]]
b = [4, 5, [6]]
私は明らかにどのようにpythonがそれぞれのケースを処理するのか分かりません。私はそれについて読むことができるように、または何が起こっているのかの短い説明を提供することができますか?
ありがとうございます。
うわー。それはいいです。 –