最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中使用遍歷在列表中添加字典遇到的坑

 更新時間:2019年02月27日 09:10:23   作者:YOYO__2018  
今天小編就為大家分享一篇關(guān)于Python中使用遍歷在列表中添加字典遇到的坑,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
"""
已知列表li = [{"key": 5}, {"key": 9}, {"key": -1}, {"key": 4}] ,
定義一個函數(shù),將該列表按照其元素的value
值進行排序,并輸出結(jié)果
"""

思路很清晰,新建一個列表,然后遍歷取出字典的值加入到新的列表中,再通過遍歷,賦值字典,使用append方法依次添加到列表,這樣就是一個按照value值排續(xù).于是有了下面的代碼:

li = [{"key": 5}, {"key": 9}, {"key": -1}, {"key": 4}]
def fun(li):
  li_1 = [] # 接收value值
  li_2 = [] # 接收新的字典
  dict_1 = {}
  for i in range(len(li)):
    li_1.append(li[i]["key"])
  li_1.sort() # 排序
  for i in li_1:
    dict_1["key"] = i
    print(dict_1)
    li_2.append(dict_1)
  return li_2
print(fun(li))

但是運行的結(jié)果卻是:

[{'key': 9}, {'key': 9}, {'key': 9}, {'key': 9}]

很明顯,取值被最后一個傳入value的9全部替換了.為什么會這樣呢?

開始懷疑是不是和字典中重復(fù)賦值給"key"有關(guān),但是也不應(yīng)該啊,每次遍歷的時候就是已經(jīng)把字典append到list中去了啊!

于是使用print(id(dict_1)),查看內(nèi)存信息,發(fā)現(xiàn)這個現(xiàn)象:

2874566784272
2874566784272
2874566784272
2874566784272

居然都是同一地址!!再查看list中的每個元素地址:

for i in li_2:
print(id(i))

結(jié)果:(print(id(dict_1))也打印了)

2501747356944
2501747356944
2501747356944
2501747356944
2501747356944
2501747356944
2501747356944
2501747356944

于是明白了,因為每次添加的都是同一個內(nèi)存到list中去了,dict_1每次寫入的時候改變了內(nèi)存中的value,但是地址不變,即是,創(chuàng)建了一次內(nèi)存空間,只會不斷的改變value了.完善方法:每次遍歷時候創(chuàng)建一個新的dict_1.

代碼:

def fun(li):
  li_1 = []
  li_2 = []
  for i in range(len(li)):
    li_1.append(li[i]["key"])
  li_1.sort() # 排序
  for i in li_1:
dict_1 = {} # 每次遍歷時創(chuàng)建一個新的內(nèi)存
    dict_1["key"] = i
    li_2.append(dict_1)
  return li_2
print(fun(li))

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • python繪制隨機網(wǎng)絡(luò)圖形示例

    python繪制隨機網(wǎng)絡(luò)圖形示例

    今天小編就為大家分享一篇python繪制隨機網(wǎng)絡(luò)圖形示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • python3代碼輸出嵌套式對象實例詳解

    python3代碼輸出嵌套式對象實例詳解

    在本篇文章里小編給大家整理了關(guān)于python3代碼輸出嵌套式對象實例詳解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2020-12-12
  • Python竟然能剪輯視頻

    Python竟然能剪輯視頻

    平時我們在刷短視頻或者看到一些視頻的時候,希望可以把視頻里面的音頻提取出來當背景音樂究竟是怎么操作的呢,下面小編教大家python如何去提取一個視頻里面的音頻,感興趣的朋友一起看看吧
    2021-05-05
  • Python黑魔法遠程控制開機的實例

    Python黑魔法遠程控制開機的實例

    這篇文章主要介紹了Python黑魔法遠程控制開機的實例,文中有非常詳細的代碼示例,對正在學(xué)習(xí)python的小伙伴們有很大的幫助,需要的朋友可以參考下
    2021-04-04
  • pandas 選擇某幾列的方法

    pandas 選擇某幾列的方法

    今天小編就為大家分享一篇pandas 選擇某幾列的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • python實現(xiàn)bitmap數(shù)據(jù)結(jié)構(gòu)詳解

    python實現(xiàn)bitmap數(shù)據(jù)結(jié)構(gòu)詳解

    bitmap是很常用的數(shù)據(jù)結(jié)構(gòu),比如用于Bloom Filter中,下面是使用python實現(xiàn)bitmap數(shù)據(jù)結(jié)構(gòu)的代碼講解,需要的朋友可以參考下
    2014-02-02
  • flask操作數(shù)據(jù)庫相關(guān)配置及實現(xiàn)示例步驟全解

    flask操作數(shù)據(jù)庫相關(guān)配置及實現(xiàn)示例步驟全解

    這篇文章主要介紹了flask操作數(shù)據(jù)庫相關(guān)配置及實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • Python調(diào)用IDM進行批量下載的實現(xiàn)

    Python調(diào)用IDM進行批量下載的實現(xiàn)

    本文主要介紹了Python調(diào)用IDM進行批量下載的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-04-04
  • 總結(jié)python實現(xiàn)父類調(diào)用兩種方法的不同

    總結(jié)python實現(xiàn)父類調(diào)用兩種方法的不同

    最近在工作中實現(xiàn)父類調(diào)用的時候發(fā)現(xiàn)了一個錯誤,然后通過分析實踐總結(jié)出來了,下面這篇文章主要給大家總結(jié)了python中實現(xiàn)父類調(diào)用兩種方法的不同之處,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-01-01
  • python中l(wèi)ogging模塊的一些簡單用法的使用

    python中l(wèi)ogging模塊的一些簡單用法的使用

    這篇文章主要介紹了python中l(wèi)ogging模塊的一些簡單用法的使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02

最新評論

兰溪市| 普陀区| 米林县| 高安市| 青岛市| 丹巴县| 安国市| 微山县| 洛浦县| 东海县| 兴宁市| 施秉县| 易门县| 萨迦县| 托克逊县| 荣昌县| 运城市| 宁都县| 成武县| 清涧县| 英吉沙县| 阿克陶县| 白河县| 高陵县| 乌恰县| 延川县| 万源市| 常山县| 唐海县| 武山县| 自贡市| 大悟县| 健康| 南投县| 囊谦县| 稻城县| 双桥区| 和林格尔县| 南阳市| 新龙县| 嘉荫县|