Python变量的复制
生活随笔
收集整理的這篇文章主要介紹了
Python变量的复制
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Python變量的復制
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輸出結果為:
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并沒有在內存中重新創建了dict,只是將dic的地址復制給dic_fake_copy。所以對dic_fake_copy的update也就是對dic的update。
dic_copy = dic.copy()可以解決這個問題。
輸出結果為:
In [11]: print 'dic_copy = %s' % dic_copy dic_copy = {'a': 1, 'b': 2}In [12]: print 'dic = %s' % dic dic = {'a': 1}在函數傳參時會出現類似的情況
def func(param):print 'param before update: %s' % paramparam.update({'b': 2})print 'param after update: %s' % paramdic = {'a': 1} func(dic) print dic輸出結果為:
param before update: {'a': 1} param after update: {'a': 1, 'b': 2} {'a': 1, 'b': 2}dic的值發生了改變。
解決方法是在調用func前先dic_copy = dic.copy()。
轉載于:https://www.cnblogs.com/Coder816/p/4714605.html
總結
以上是生活随笔為你收集整理的Python变量的复制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 再见CSDN
- 下一篇: linux epoll 开发指南-【ff