嗨,任何人都可以为我澄清这个问题.以下是代码示例:
def test1(d1):
d1_adj = d1.copy()
d1_adj.get(0)[0] *= 10
return d1_adj
d1 = {0: [10, 10]}
d1_adj = test1(d1)
print d1
{0: [100, 10]}
Run Code Online (Sandbox Code Playgroud)
为什么d1字典会更新?如果我想保留原始输入字典的值并仅更新已复制的值,我怎么能遇到这个问题?
感谢名单
这是因为d.copy()是浅拷贝.您需要深层复制才能完成此任务.
from copy import deepcopy
Run Code Online (Sandbox Code Playgroud)
然后
d1_adj = deepcopy(d1)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
55 次 |
| 最近记录: |