【发布时间】:2018-12-02 19:51:50
【问题描述】:
我很难理解 Python 列表切片的空间复杂性。
对于类似的东西
arr[2:] = arr[2:][::-1]
是为切片分配了新空间(就像在字符串中所做的那样,因为它们是不可变的)还是在同一个数组上完成了操作?
例如:
ans = [i+1 for i in range(n)]
for i in range(k):
ans[i:] = ans[i:][::-1]
空间复杂度是多少?它会与 ans 是字符串时不同还是相同,例如ans = '12345...n'?
【问题讨论】:
-
回答您的第一个问题,this might help。
-
将切片赋值给一个变量,检查并比较
id(...)s。 -
@Matos 很酷的发现,另一个 Q 的“简短答案”完全回答了这个问题。投票结束。
-
链接的问题根本不关心空间复杂性或就地突变。投票支持重新开放。
标签: python string python-3.x list