Python变量的复制
生活随笔
收集整理的這篇文章主要介紹了
Python变量的复制
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Python變量的復(fù)制
dic = {'a': 1} dic_fake_copy = dic dic_fake_copy.update({'b': 2}) print 'dic_fake_copy = %s' % dic_fake_copy print 'dic = %s' % dic輸出結(jié)果為:
In [6]: print 'dic_fake_copy = %s' % dic_fake_copy dic_fake_copy = {'a': 1, 'b': 2}In [7]: print 'dic = %s' % dic dic = {'a': 1, 'b': 2}dic_fake_copy = dic并沒有在內(nèi)存中重新創(chuàng)建了dict,只是將dic的地址復(fù)制給dic_fake_copy。所以對(duì)dic_fake_copy的update也就是對(duì)dic的update。
dic_copy = dic.copy()可以解決這個(gè)問題。
輸出結(jié)果為:
In [11]: print 'dic_copy = %s' % dic_copy dic_copy = {'a': 1, 'b': 2}In [12]: print 'dic = %s' % dic dic = {'a': 1}在函數(shù)傳參時(shí)會(huì)出現(xiàn)類似的情況
def func(param):print 'param before update: %s' % paramparam.update({'b': 2})print 'param after update: %s' % paramdic = {'a': 1} func(dic) print dic輸出結(jié)果為:
param before update: {'a': 1} param after update: {'a': 1, 'b': 2} {'a': 1, 'b': 2}dic的值發(fā)生了改變。
解決方法是在調(diào)用func前先dic_copy = dic.copy()。
轉(zhuǎn)載于:https://www.cnblogs.com/Coder816/p/4714605.html
總結(jié)
以上是生活随笔為你收集整理的Python变量的复制的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 再见CSDN
- 下一篇: [python3.3]Python异步S