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

解決python字典對值(值為列表)賦值出現(xiàn)重復(fù)的問題

 更新時間:2019年01月20日 11:48:49   作者:wang_kmin  
今天小編就為大家分享一篇解決python字典對值(值為列表)賦值出現(xiàn)重復(fù)的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

可能很少有人遇到這個問題,網(wǎng)上也沒找到,這里記錄一下,希望也可以幫到其他人。

問題描述:假設(shè)有一個字典data,其鍵不定,可能隨時添加鍵(這不是關(guān)鍵),某一個鍵下面對應(yīng)的值為一個長度為10的list,初始化為0,然后我想修改某些鍵下面的列表中的某一個值,比如data有一個鍵'k',對應(yīng)的值為[0,0,0,0,0,0,0,0,0,0],現(xiàn)在我想把鍵'k'對應(yīng)的列表的第三個數(shù)改成3,即[0,0,3,0,0,0,0,0,0,0],可是意外的事情發(fā)生了,如果data還有一個鍵'k1',假設(shè)其值為[0,0,0,0,0,0,0,0,0,0],但是操作完之后,居然也跟著變成了[0,0,3,0,0,0,0,0,0,0]。

具體代碼如下:

data = {}
indexes = ['new','repeat']
ret = [{'i':1,'new':3,'repeat':11},{'i':3,'new':2,'repeat':6},
    {'i':4,'new':9,'repeat':2},{'i':9,'new':1,'repeat':8}]
y_axis = [0]*10
for e in ret:
  for index in indexes:
    if not data.has_key(index):
      data[index] = y_axis
  i = e['i']
  for index in indexes:
    data[index][i] = e[index]
print data

代碼不難看懂,我感覺理論上應(yīng)該輸出:{'new': [0, 3, 0, 2, 9, 0, 0, 0, 0, 1], 'repeat': [0, 11, 0, 6, 2, 0, 0, 0, 0, 8]},但是事與愿違,輸出是:{'new': [0, 11, 0, 6, 2, 0, 0, 0, 0, 8], 'repeat': [0, 11, 0, 6, 2, 0, 0, 0, 0, 8]},感覺莫名其妙,于是準(zhǔn)備調(diào)試,先import pdb,再在需要打斷點的前一句加pdb.set_trace()即可,如下:

import pdb
data = {}
indexes = ['new','repeat']
ret = [{'i':1,'new':3,'repeat':11},{'i':3,'new':2,'repeat':6},
    {'i':4,'new':9,'repeat':2},{'i':9,'new':1,'repeat':8}]
y_axis = [0]*10
for e in ret:
  for index in indexes:
    if not data.has_key(index):
      data[index] = y_axis
  i = e['i']
  for index in indexes:
    pdb.set_trace()
    data[index][i] = e[index]
print data

接著,python test.py,到賦值data的鍵對應(yīng)的列表某一個值那一句:

python字典對值(值為列表)賦值出現(xiàn)重復(fù)

查看data和index值:

python字典對值(值為列表)賦值出現(xiàn)重復(fù)

正常。往下執(zhí)行一步,即執(zhí)行賦值操作,再查看data值:

python字典對值(值為列表)賦值出現(xiàn)重復(fù)

在這里真想來一句mdblgl,明明index是'new',明明是對data['new'][1]賦值,關(guān)data['repeat'][1]屁事,它跟著變什么?可想而知,后面對data['repeat'][1]再賦一個值11,那'new'的值不就也跟著一起變,結(jié)果就是得到了最后那個莫名其妙的結(jié)果。

試過很多辦法,想過很多原因,無賴才疏學(xué)淺,不知道是什么原理,最后,只好用一種非常笨的方法解決了:

data = {}
indexes = ['new','repeat']
ret = [{'i':1,'new':3,'repeat':11},{'i':3,'new':2,'repeat':6},
    {'i':4,'new':9,'repeat':2},{'i':9,'new':1,'repeat':8}]
y_axis = [0]*10
tmp = y_axis*len(indexes)
for k in range(len(indexes)):
  for e in ret:
    i = e['i']
    tmp[i+len(y_axis)*k] = e[indexes[k]]
for k in range(len(indexes)):
  data[indexes[k]] = tmp[(k*len(y_axis)):((k+1)*len(y_axis))]
print data

在此,希望知道為什么這樣的大佬指點一下,萬分感謝!

以上這篇解決python字典對值(值為列表)賦值出現(xiàn)重復(fù)的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何使用Pytorch完成圖像分類任務(wù)詳解

    如何使用Pytorch完成圖像分類任務(wù)詳解

    如果你剛剛開始學(xué)習(xí) PyTorch,并想學(xué)習(xí)如何做一些基本的圖像分類,可以看看本文,這篇文章主要給大家介紹了關(guān)于如何使用Pytorch完成圖像分類任務(wù)的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • Python面向?qū)ο蟪绦蛟O(shè)計OOP深入分析【構(gòu)造函數(shù),組合類,工具類等】

    Python面向?qū)ο蟪绦蛟O(shè)計OOP深入分析【構(gòu)造函數(shù),組合類,工具類等】

    這篇文章主要介紹了Python面向?qū)ο蟪绦蛟O(shè)計OOP,較為詳細的深入分析了Python面向?qū)ο蟮臉?gòu)造函數(shù),組合類,工具類等相關(guān)概念、使用方法及操作注意事項,需要的朋友可以參考下
    2019-01-01
  • 完美解決Python2操作中文名文件亂碼的問題

    完美解決Python2操作中文名文件亂碼的問題

    下面小編就為大家?guī)硪黄昝澜鉀QPython2操作中文名文件亂碼的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • python的邏輯與循環(huán)詳解

    python的邏輯與循環(huán)詳解

    這篇文章主要為大家詳細介紹了python的邏輯與循環(huán),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • python 中的divmod數(shù)字處理函數(shù)淺析

    python 中的divmod數(shù)字處理函數(shù)淺析

    這篇文章主要介紹了python divmod數(shù)字處理函數(shù)的相關(guān)資料,感興趣的朋友一起看看吧
    2017-10-10
  • Python Django查詢集的延遲加載特性詳解

    Python Django查詢集的延遲加載特性詳解

    在 Django 的開發(fā)過程中,查詢集(QuerySet)是我們與數(shù)據(jù)庫進行交互的重要工具,本文將深入探討 Django 查詢集的延遲加載特性,幫助新手理解其工作原理及優(yōu)缺點,提供一些實用的代碼示例來展示延遲加載如何在實際項目中使用,需要的朋友可以參考下
    2024-10-10
  • 分享幾道你可能遇到的python面試題

    分享幾道你可能遇到的python面試題

    最近去筆試,在面試過程中遇到了幾個編程題,比較基礎(chǔ)。所以想著總結(jié)一下,所以下面這篇文章主要給大家分享了幾道你可能遇到的python面試題,文中給出了詳細的示例代碼供大家參考學(xué)習(xí),需要的朋友們下面來一起看看吧。
    2017-07-07
  • python讀取excel指定列數(shù)據(jù)并寫入到新的excel方法

    python讀取excel指定列數(shù)據(jù)并寫入到新的excel方法

    今天小編就為大家分享一篇python讀取excel指定列數(shù)據(jù)并寫入到新的excel方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • 如何處理Python3.4 使用pymssql 亂碼問題

    如何處理Python3.4 使用pymssql 亂碼問題

    這篇文章主要介紹了如何處理Python3.4 使用pymssql 亂碼問題的相關(guān)資料,涉及到python pymssql相關(guān)知識,對此感興趣的朋友一起學(xué)習(xí)吧
    2016-01-01
  • Python 使用 attrs 和 cattrs 實現(xiàn)面向?qū)ο缶幊痰膶嵺`

    Python 使用 attrs 和 cattrs 實現(xiàn)面向?qū)ο缶幊痰膶嵺`

    這篇文章主要介紹了Python 使用 attrs 和 cattrs 實現(xiàn)面向?qū)ο缶幊痰膶嵺`,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-06-06

最新評論

聊城市| 龙海市| 高唐县| 中西区| 雷波县| 老河口市| 磴口县| 西峡县| 邹平县| 海阳市| 沙坪坝区| 通山县| 马山县| 永修县| 古交市| 澎湖县| 林周县| 益阳市| 房产| 苍梧县| 屏南县| 新乐市| 石阡县| 台安县| 沁阳市| 双柏县| 长海县| 怀安县| 龙南县| 达日县| 本溪市| 彝良县| 申扎县| 陈巴尔虎旗| 太保市| 高邮市| 贵阳市| 灵寿县| 喀什市| 简阳市| 崇左市|