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]
| 归档时间: |
|
| 查看次数: |
387 次 |
| 最近记录: |