s[:] = s[::-1]
Run Code Online (Sandbox Code Playgroud)
相对
s = s[::-1]
Run Code Online (Sandbox Code Playgroud)
请解释使用上述方法实现结果之间的区别。
第一个改变原始列表本身。第二个创建一个新列表,并将其分配回变量。
>>> s = [1,2,3]
>>> id(s)
2186036088200 # original id
>>> s[:] = s[::-1]
>>> id(s)
2186036088200 # still same id
>>> s = s[::-1]
>>> id(s)
2186036085000 # new id, because new list was created
Run Code Online (Sandbox Code Playgroud)
第一种方法称为“切片分配”。