pro*_*fan 3 python collections deque
为什么在以下作业..
d = deque('abc')
a = d
d.clear()
print a
Run Code Online (Sandbox Code Playgroud)
双端队列([])
返回一个空的双端队列?我希望能保留数据的一个,尽管清除旧的双端队列.
a并d引用相同的对象.所以,如果你clear这样,它将被清除为"两个变量".
您可以通过打印对象的标识来检查.
>>> id(a)
44988624L
>>> id(d)
44988624L
Run Code Online (Sandbox Code Playgroud)
通过赋值复制值只适用于基本数据类型等int.如果处理对象,则必须复制它,因为变量本身只是持有对象的引用.
你可以这样做
d = deque('abc')
a = deque('abc')
Run Code Online (Sandbox Code Playgroud)
或者
>>> import copy
>>> d = copy.copy(a)
Run Code Online (Sandbox Code Playgroud)
结果
>>> id(a)
44988624L
>>> id(d)
44989352L
Run Code Online (Sandbox Code Playgroud)
但随后你会得到两个不同的对象a和d使用后,这将是不同的.
| 归档时间: |
|
| 查看次数: |
387 次 |
| 最近记录: |