您可以使用
[:],但是对于包含列表(或其他可变对象)的列表,您应该使用
copy.deepcopy():
lis[:]等价于
list(lis)或
copy.copy(lis),并返回列表的浅表副本。
In [33]: def func(lis): print id(lis) ....:In [34]: lis = [1,2,3]In [35]: id(lis)Out[35]: 158354604In [36]: func(lis[:])158065836
何时使用
deepcopy():
In [41]: lis = [range(3), list('abc')]In [42]: id(lis)Out[42]: 158066124In [44]: lis1=lis[:]In [45]: id(lis1)Out[45]: 158499244 # different than lis, but the inner lists are still sameIn [46]: [id(x) for x in lis1] = =[id(y) for y in lis]Out[46]: TrueIn [47]: lis2 = copy.deepcopy(lis)In [48]: [id(x) for x in lis2] == [id(y) for y in lis] Out[48]: False


