亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

淺談python中字典append 到list 后值的改變問題

 更新時間:2018年05月04日 10:48:47   作者:katios  
今天小編就為大家分享一篇淺談python中字典append 到list 后值的改變問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

看一個例子

d={'test':1}
d_test=d
d_test['test']=2
print d

如果你在命令行實(shí)踐的話,會發(fā)現(xiàn)你改動的是d_test ,但是d 也跟著改變了。

通常這和我們期待的不一樣。

Why?

因?yàn)樽值鋎 是一個object ,而d_test=d并沒有真正的將該字典在內(nèi)存中再次創(chuàng)建。只是指向了相同的object。這也是python 提高性能,優(yōu)化內(nèi)存的考慮。

實(shí)際場景

d={"name":""}
l=[]
for i in xrange(5):
  d["name"]=i
  l.append(d)
print l

loop 后可能跟你想要的結(jié)果并不相同。

即使append到list 中,但是,list中存放的也是一個對象,或者說是字典的地址。而非內(nèi)存中真正的存儲空間。

使用 .copy()方法。可以創(chuàng)建一個新的獨(dú)立的字典

d={"name":""}
l=[]
for i in xrange(5):
  test=d.copy()
  test["name"]=i
  l.append(test)
print l

更新:

a={'q':1,'w':[]}
b=a.copy()
b['q']=2
b['w'].append(123)
print a
print b

這個時候發(fā)現(xiàn)a中'q'的值不會變化但是其列表中的值還是發(fā)生了改變

因?yàn)閏opy是淺層次copy

但是這里有個track

a={'q':1,'w':[]}
b=a.copy()
b['q']=2
b['w']=[123]
print a
print b

直接賦值的話,則不會改變a中的結(jié)構(gòu)(多半是append這個方法的關(guān)系)

深層次的copy

import copy
a={'q':1,'w':[]}
b=copy.deepcopy(a)

以上這篇淺談python中字典append 到list 后值的改變問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • pandas dataframe保留重復(fù)行的方法

    pandas dataframe保留重復(fù)行的方法

    如何保留Pandas DataFrame中的重復(fù)行,可以使用duplicated()方法和布爾索引,具有一定的參考價值,感興趣的可以了解一下
    2023-11-11
  • 使用Python實(shí)現(xiàn)視頻轉(zhuǎn)音頻與音頻轉(zhuǎn)文本

    使用Python實(shí)現(xiàn)視頻轉(zhuǎn)音頻與音頻轉(zhuǎn)文本

    這篇文章主要為大家詳細(xì)介紹了使用Python實(shí)現(xiàn)視頻轉(zhuǎn)音頻與音頻轉(zhuǎn)文本的相關(guān)知識,文中的示例代碼簡潔易懂,有需要的小伙伴可以參考一下
    2024-02-02
  • Python進(jìn)程池Pool應(yīng)用實(shí)例分析

    Python進(jìn)程池Pool應(yīng)用實(shí)例分析

    這篇文章主要介紹了Python進(jìn)程池Pool應(yīng)用,結(jié)合實(shí)例形式分析了Python進(jìn)程池Pool功能、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-11-11
  • 如何基于pythonnet調(diào)用halcon腳本

    如何基于pythonnet調(diào)用halcon腳本

    這篇文章主要介紹了如何基于pythonnet調(diào)用halcon腳本,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • 詳解numpy1.19.4與python3.9版本沖突解決

    詳解numpy1.19.4與python3.9版本沖突解決

    這篇文章主要介紹了詳解numpy1.19.4與python3.9版本沖突解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Python實(shí)現(xiàn)葵花8號衛(wèi)星數(shù)據(jù)自動下載實(shí)例

    Python實(shí)現(xiàn)葵花8號衛(wèi)星數(shù)據(jù)自動下載實(shí)例

    這篇文章主要為大家介紹了Python實(shí)現(xiàn)葵花8號衛(wèi)星數(shù)據(jù)自動下載實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • Python數(shù)據(jù)類型轉(zhuǎn)換詳解

    Python數(shù)據(jù)類型轉(zhuǎn)換詳解

    本篇文章里小編給大家整理的是關(guān)于Python中常用數(shù)據(jù)類型之間的轉(zhuǎn)換相關(guān)知識點(diǎn),有需要的朋友們可以學(xué)習(xí)下,希望能夠給你帶來幫助
    2021-10-10
  • python matplotlib庫的基本使用

    python matplotlib庫的基本使用

    這篇文章主要介紹了python matplotlib庫的基本使用,幫助大家繪制圖表,進(jìn)行數(shù)據(jù)可視化分析,感興趣的朋友可以了解下
    2020-09-09
  • 基于python讀取圖像的幾種方式匯總

    基于python讀取圖像的幾種方式匯總

    Python進(jìn)行圖片處理,第一步就是讀取圖片,下面這篇文章主要給大家介紹了關(guān)于基于python讀取圖像的幾種方式的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • Python獲取系統(tǒng)所有進(jìn)程PID及進(jìn)程名稱的方法示例

    Python獲取系統(tǒng)所有進(jìn)程PID及進(jìn)程名稱的方法示例

    這篇文章主要介紹了Python獲取系統(tǒng)所有進(jìn)程PID及進(jìn)程名稱的方法,涉及Python使用psutil對系統(tǒng)進(jìn)程進(jìn)行操作的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2018-05-05

最新評論