有这段代码:
a = [1, 2, 3, 4, 5]
a[:] = [] # and now a is also empty
语句a[:]
在我阅读时会创建列表a
的副本,因此如果为列表分配了空列表[]
,那么为什么原始对象也会被修改?
答案 0 :(得分:5)
x = a[:]
使x
成为包含与a
a[:] = x
使现有列表a
包含与x
相同的值
当切换等于的边时,表达式的行为会发生变化。
答案 1 :(得分:4)
语句
a[:]
在我阅读时创建了列表a
的副本
除非你不读书,否则你正在写作。切片分配的工作方式不同,因为它用序列替换切片。