python list的小细节
在递归里面显得很重要
Python 中列表的特性:在 Python 中,列表是可变对象。这意味着当你将一个列表对象传递给一个函数或者赋值给另一个变量时,实际上传递的是对这个列表的引用。如果对这个引用指向的列表进行修改,那么所有引用这个列表的地方都会看到这个修改。
path1 = [1]
path2 = path1
path2.append(2)
print(path1)
print(path2)
在这个例子中,首先创建了一个列表path1
,然后将其赋值给path2
。由于列表是可变对象,这时候path1
和path2
实际上指向同一个列表对象。当对path2
进行修改(添加数字2
)时,path1
也会受到影响,因为它们是同一个列表。
输出结果为:
[1, 2]
[1, 2]
这里使用path1 + [2]
创建了一个新的列表并赋值给path2
。这时候path1
和path2
是两个不同的列表对象。对path2
进行修改不会影响path1
。
而如果我们像这样创建新列表:
path1 = [1]
path2 = path1 + [2]
print(path1)
print(path2)
[1]
[1, 2]