har*_*rry 0 python list python-3.x
我想知道列表变量本身和后跟 [:] 的列表变量之间的区别
例如,
# When nums are List[int] and res are List,
# what is the difference between
res.append(nums[:])
# and
res.append(nums)
Run Code Online (Sandbox Code Playgroud)
我在实现递归置换函数时提出了我的问题
# When nums are List[int] and res are List,
# what is the difference between
res.append(nums[:])
# and
res.append(nums)
Run Code Online (Sandbox Code Playgroud)
提前感谢您的帮助!
nums[:]
是一种在 python 中制作列表浅拷贝的便捷方法。res.append(nums)
附加对 的引用nums
,即对 的任何更改nums
也将反映在 中res
。res.append(nums[:])
将创建一个新副本nums
,您可以更改其中的所有内容,而无需更改原始副本nums
希望这个例子能说明白
nums = [1, 2, 3]
res = [nums]
res[0][0] = 'banana'
print(nums)
nums = [1, 2, 3]
res = [nums[:]]
res[0][0] = 'banana'
print(nums)
Run Code Online (Sandbox Code Playgroud)
给出输出
['香蕉', 2, 3]
[1, 2, 3]