def do_something(a, b):
a.insert(0, 'z')
b = ['z'] + b
a = ['a', 'b', 'c']
a1 = a
a2 = a[:]
b = ['a', 'b', 'c']
b1 = b
b2 = b[:]
do_something(a, b)
为什么a
在['z' 'a' 'b' 'c']
给出b
时给['a' 'b' 'c']
?
我想,因为他们应该合并相同的类型。
答案 0 :(得分:1)
b = ['z'] + b
创建一个新列表,并使局部变量b
指向它。原始列表未被修改。
相比之下,insert
方法会更改现有列表,因此可以在函数外部看到它的效果。