欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python如何將多個映射合并為一個映射

 更新時間:2024年09月11日 07:38:18   作者:yangjiajia123456  
ChainMap類是Python中collections模塊的一部分,用于將多個字典合并為一個映射,而不會在物理上合并字典,這使得字典中相同的鍵可以共存,輸出結(jié)果取決于鍵的檢索順序,ChainMap通過維護一個底層映射的列表,重定義字典操作來實現(xiàn)這一功能

python多個映射合并為一個映射

我們有時需要將多個字典合并成一個單獨的映射結(jié)構(gòu),但不同的字典之間可能有相同的鍵,又不想將鍵覆蓋掉,于是可以使用ChainMap類來實現(xiàn)。

它在邏輯上將不同的字典合并為一個單獨的映射結(jié)構(gòu)。

from pprint import pprint
from collections import ChainMap

a = {'x': 1, 'y': 2, 'z': 3}
b = {'y': 4, 'z': 5, 'm': 6, 'n': 8}
c = {'m': 6, 'n': 10, 'a': 7, 'b': 0, 'c': 9}

d = ChainMap(a, b, c)
pprint(d)

輸出結(jié)果

ChainMap({'x': 1, 'y': 2, 'z': 3},
         {'m': 6, 'n': 8, 'y': 4, 'z': 5},
         {'a': 7, 'b': 0, 'c': 9, 'm': 6, 'n': 10})

ChainMap接受多個映射然后在邏輯上表現(xiàn)為一個單獨的映射。但是,這些字典并不會在事實上合并在一起。

ChainMap只是簡單地維護一個記錄底層映射關系的列表,然后重新定義常見的字典操作來掃描這個列表。

print(list(d.keys()))
print(list(d.values()))

每次運行輸出的序列的值的順序都不相同

['x', 'n', 'a', 'm', 'y', 'b', 'c', 'z']
[1, 8, 7, 6, 2, 0, 9, 3]
.
.
.
['a', 'x', 'm', 'y', 'n', 'z', 'b', 'c']
[7, 1, 6, 2, 8, 3, 0, 9]

如果有重復的鍵,那么會輸出第一個查到的鍵。

print(d['n'])

8

python合并多個字典或者映射

python 中很多時候會用到合并多個字典

首先我們介紹一個collections模塊中的ChairMap類

from collections import ChainMap
a = {'x': 1, 'z': 3 }
b = {'y': 2, 'z': 4 }
c = ChainMap(a,b)

如果模塊中的鍵是相同的 會返回第一個值 , 因為是映射 ,所以對它的操作都會對原數(shù)組有操作。

如果不想改變原來數(shù)組可以使用python 中的update()

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

它需要你創(chuàng)建一個完全不同的字典對象(或者是破壞現(xiàn)有字典結(jié)構(gòu))。 同時,如果原字典做了更新,這種改變不會反應到新的合并字典中去。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Linux下多個Python版本安裝教程

    Linux下多個Python版本安裝教程

    這篇文章主要為大家詳細介紹了Linux下多個Python版本的安裝教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Django--權限Permissions的例子

    Django--權限Permissions的例子

    今天小編就為大家分享一篇Django--權限Permissions的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • python數(shù)據(jù)分析基礎知識之shape()函數(shù)的使用教程

    python數(shù)據(jù)分析基礎知識之shape()函數(shù)的使用教程

    shape函數(shù)是numpy.core.fromnumeric中的函數(shù),它的功能是讀取矩陣的長度,比如shape[0]就是讀取矩陣第一維度的長度,下面這篇文章主要給大家介紹了關于python數(shù)據(jù)分析基礎知識之shape()函數(shù)使用的相關資料,需要的朋友可以參考下
    2022-09-09
  • Scrapy框架基本命令與settings.py設置

    Scrapy框架基本命令與settings.py設置

    這篇文章主要介紹了Scrapy框架基本命令與settings.py設置,結(jié)合實例形式分析了創(chuàng)建爬蟲項目、創(chuàng)建爬蟲文件、存儲、打開網(wǎng)頁及settings.py設置等相關操作技巧,需要的朋友可以參考下
    2020-02-02
  • PyQt Qt Designer工具的布局管理詳解

    PyQt Qt Designer工具的布局管理詳解

    這篇文章主要介紹了PyQt Qt Designer工具的布局管理詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • flask框架視圖函數(shù)用法示例

    flask框架視圖函數(shù)用法示例

    這篇文章主要介紹了flask框架視圖函數(shù)用法,結(jié)合實例形式分析了flask框架視圖函數(shù)常見配置與使用技巧,需要的朋友可以參考下
    2018-07-07
  • Windows系統(tǒng)下PhantomJS的安裝和基本用法

    Windows系統(tǒng)下PhantomJS的安裝和基本用法

    今天小編就為大家分享一篇關于Windows系統(tǒng)下PhantomJS的安裝和基本用法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • 最新評論