1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務時間:8:30-17:00
      你可能遇到了下面的問題
      關閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      Python如何合并多個字典或映射-創(chuàng)新互聯(lián)

      這篇文章運用簡單易懂的例子給大家介紹Python 如何合并多個字典或映射,代碼非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

      創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務,包含不限于成都網(wǎng)站制作、網(wǎng)站建設、外貿(mào)網(wǎng)站建設、臨西網(wǎng)絡推廣、成都微信小程序、臨西網(wǎng)絡營銷、臨西企業(yè)策劃、臨西品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們大的嘉獎;創(chuàng)新互聯(lián)為所有大學生創(chuàng)業(yè)者提供臨西建站搭建服務,24小時服務熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com

      問題

      現(xiàn)在有多個字典或者映射,你想將它們從邏輯上合并為一個單一的映射后執(zhí)行某些操作,比如查找值或者檢查某些鍵是否存在。

      解決方案

      加入你有如下兩個字典:

      a = {'x': 1, 'z': 3 }
      b = {'y': 2, 'z': 4 }

      現(xiàn)在假設你必須在兩個字典中執(zhí)行查找操作(比如先從a中找,如果找不到再在b中找)。一個非常簡單扼解決方案就是使用collections模塊中的ChainMap類。比如:

      from collections import ChainMap
      c = ChainMap(a,b)
      print(c['x']) # Outputs 1 (from a)
      print(c['y']) # Outputs 2 (from b)
      print(c['z']) # Outputs 3 (from a)

      討論

      一個ChainMap接受多個字典并將它們在邏輯上變?yōu)橐粋€字典。然后,這些字典并不是真的合并在一起了,ChainMap類只是在內(nèi)部創(chuàng)建了一個容納這些字典的列表并重新定義了一些常見的字典操作來遍歷這個列表。大部分字典操作都是可以正常使用的,比如:

      >>> len(c)
      3
      >>> list(c.keys())
      ['x', 'y', 'z']
      >>> list(c.values())
      [1, 2, 3]
      >>>

      如果出現(xiàn)重復鍵,那么第一次出現(xiàn)的映射值會被返回。因此,例子程序中的c[‘z']總是會返回字典a中對應的值,而不是b中對應的值。

      對于字典的更新或刪除操作總是影響的是列表中第一個字典。比如:

      >>> c['z'] = 10
      >>> c['w'] = 40
      >>> del c['x']
      >>> a
      {'w': 40, 'z': 10}
      >>> del c['y']
      Traceback (most recent call last):
      ...
      KeyError: "Key not found in the first mapping: 'y'"
      >>>

      ChainMap對于編程語言中的作用范圍變量(比如globals, locals等)是非常有用的。事實上,有一些方法可以使它變得簡單:

      >>> values = ChainMap()
      >>> values['x'] = 1
      >>> # Add a new mapping
      >>> values = values.new_child()
      >>> values['x'] = 2
      >>> # Add a new mapping
      >>> values = values.new_child()
      >>> values['x'] = 3
      >>> values
      ChainMap({'x': 3}, {'x': 2}, {'x': 1})
      >>> values['x']
      3
      >>> # Discard last mapping
      >>> values = values.parents
      >>> values['x']
      2
      >>> # Discard last mapping
      >>> values = values.parents
      >>> values['x']
      1
      >>> values
      ChainMap({'x': 1})
      >>>

      作為ChainMap的替代,你可能會考慮使用update()方法將兩個字典合并。比如:

      >>> a = {'x': 1, 'z': 3 }
      >>> b = {'y': 2, 'z': 4 }
      >>> merged = dict(b)
      >>> merged.update(a)
      >>> merged['x']
      1
      >>> merged['y']
      2
      >>> merged['z']
      3
      >>>

      這樣也能行得通,但是它需要你創(chuàng)建一個完全不同的字典對象(或者是破壞現(xiàn)有字典結構)。同時,如果原字典做了更新,這種改變不會反應到新的合并字典中去。比如:

      >>> a['x'] = 13
      >>> merged['x']
      1

      ChianMap使用原來的字典,它自己不創(chuàng)建新的字典。所以它并不會產(chǎn)生上面所說的結果,比如:

      >>> a = {'x': 1, 'z': 3 }
      >>> b = {'y': 2, 'z': 4 }
      >>> merged = ChainMap(a, b)
      >>> merged['x']
      1
      >>> a['x'] = 42
      >>> merged['x'] # Notice change to merged dicts
      42
      >>>

      關于Python 如何合并多個字典或映射就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


      當前題目:Python如何合并多個字典或映射-創(chuàng)新互聯(lián)
      文章鏈接:http://www.ef60e0e.cn/article/dejijd.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        津市市| 东港市| 门头沟区| 北宁市| 隆德县| 华安县| 河东区| 彭山县| 丹东市| 凯里市| 沧州市| 兴和县| 崇文区| 新建县| 调兵山市| 天镇县| 黄龙县| 广东省| 偃师市| 兰西县| 道孚县| 永吉县| 土默特右旗| 武乡县| 卓资县| 苏尼特右旗| 临猗县| 呼伦贝尔市| 江都市| 嘉定区| 阳高县| 安溪县| 滦平县| 桐城市| 交口县| 石门县| 昭通市| 瓦房店市| 调兵山市| 昌平区| 清涧县|