我来自以下代码:
# O(n) space
def rotate(self, nums, k):
deque = collections.deque(nums)
k %= len(nums)
for _ in xrange(k):
deque.appendleft(deque.pop())
nums[:] = list(deque) # <- Code in question
Run Code Online (Sandbox Code Playgroud)
nums[:] =那nums =不是做什么的?就此而言,那不做nums[:]什么nums?
我正在一个非常依赖性能的应用程序上使用 python 3.5 列表。
在字典列表中搜索对象删除后,我想知道该解决方案中的冒号[:]。我知道它创建了一个副本(理论上),但在这个例子中看不到它的目的。
它可能节省内存吗?或者它与浅拷贝/深拷贝有关吗?对于现有的情况和现有的情况,python 的行为会有所不同mylist = ...吗mylist[:] = ...?
我发现了一些类似的问题,但没有一个问题涉及 python 在给定这样的任务时的行为方式。