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

Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)將多個映射合并為單個映射的方法

 更新時間:2018年04月19日 11:51:59   作者:壟上行  
這篇文章主要介紹了Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)將多個映射合并為單個映射的方法,結(jié)合實例形式分析了Python字典映射合并操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下

本文實例講述了Python將多個映射合并為單個映射的方法。分享給大家供大家參考,具體如下:

問題:在邏輯上將多個字典或映射合并為一個單獨的映射結(jié)構(gòu),以此執(zhí)行某些特定的操作,比如查找值或者檢查鍵是否存在

解決方案:利用collections模塊中的ChainMap

ChainMap可接受多個映射然后在邏輯上使它們表現(xiàn)為一個單獨的映射結(jié)構(gòu)。這些映射在字面上并不會合并在一起。相反,ChainMap只是簡單地維護一個記錄底層映射關(guān)系的列表,然后重定義常見的字典操作來掃描這個列表。

# example.py
#
# Example of combining dicts into a chainmap
a = {'x': 1, 'z': 3 }
b = {'y': 2, 'z': 4 }
# (a) Simple example of combining
from collections import ChainMap
c = ChainMap(a,b) #如果有重復的鍵,那么會采用第一個映射中所對應(yīng)的值。
print(c['x'])   # Outputs 1 (from a)
print(c['y'])   # Outputs 2 (from b)
print(c['z'])   # Outputs 3 (from a)
# Output some common values
print('len(c):', len(c))
print('c.keys():', list(c.keys()))
print('c.values():', list(c.values()))
# Modify some values
c['z'] = 10
c['w'] = 40
print("a:", a)
del c['x']
print("a:", a)
# Example of stacking mappings (like scopes)
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
print(values)
print(values['x'])
# Discard last mapping
values = values.parents
print(values)
print(values['x'])
# Discard last mapping
values = values.parents
print(values)
print(values['x'])

>>> ================================ RESTART ================================
>>>
1
2
3
len(c): 3
c.keys(): ['y', 'x', 'z']
c.values(): [2, 1, 3]
a: {'x': 1, 'z': 10, 'w': 40}
a: {'z': 10, 'w': 40}
ChainMap({'x': 3}, {'x': 2}, {'x': 1})
3
ChainMap({'x': 2}, {'x': 1})
2
ChainMap({'x': 1})
1
>>>

另外ChainMap操作的是原始字典,可以避免一些令人不悅的行為,例如其中任何一個原始字典的修改無法反應(yīng)到合并后的字典中。

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

(代碼摘自《Python Cookbook》)

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對大家Python程序設(shè)計有所幫助。

相關(guān)文章

  • Pytorch之如何dropout避免過擬合

    Pytorch之如何dropout避免過擬合

    這篇文章主要介紹了Pytorch 如何dropout避免過擬合的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Python模擬百度登錄實例詳解

    Python模擬百度登錄實例詳解

    最近公司產(chǎn)品和百度貼吧合作搞活動,為了增加人氣,打算做個自動簽到的小程序,接下來通過本文給大家介紹python模擬百度登錄,感興趣的朋友一起學習本段代碼吧
    2016-01-01
  • Python文本統(tǒng)計功能之西游記用字統(tǒng)計操作示例

    Python文本統(tǒng)計功能之西游記用字統(tǒng)計操作示例

    這篇文章主要介紹了Python文本統(tǒng)計功能之西游記用字統(tǒng)計操作,結(jié)合實例形式分析了Python文本讀取、遍歷、統(tǒng)計等相關(guān)操作技巧,需要的朋友可以參考下
    2018-05-05
  • Pytorch distributed 多卡并行載入模型操作

    Pytorch distributed 多卡并行載入模型操作

    這篇文章主要介紹了Pytorch distributed 多卡并行載入模型操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 使用Python畫一張完整的K線圖的方法教程

    使用Python畫一張完整的K線圖的方法教程

    Pyecharts?是?Python?里的一個強大可視化庫,基于百度?Echarts,支持各種圖表:柱狀圖、折線圖、餅圖、K?線圖等等,本文就給大家介紹了Python如何使用Pyecharts畫一個漂亮的K線圖,感興趣的小伙伴跟著小編一起來看看吧
    2025-04-04
  • 基于python3 類的屬性、方法、封裝、繼承實例講解

    基于python3 類的屬性、方法、封裝、繼承實例講解

    下面小編就為大家?guī)硪黄趐ython3 類的屬性、方法、封裝、繼承實例講解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • Python與Matlab實現(xiàn)快速傅里葉變化的區(qū)別

    Python與Matlab實現(xiàn)快速傅里葉變化的區(qū)別

    信號處理免不了要求頻率、畫頻譜圖,但Matlab的fft()函數(shù)與Python的numpy.fft.fft()與scipy.fftpack.fft()函數(shù)得到的是fft變化后的雙邊復數(shù)值,離畫頻譜圖還有幾句代碼的距離。基本原理不介紹了,下面直接懶人投喂,給出Matlab與Python的兩個函數(shù),直接調(diào)用即可畫頻譜圖
    2021-10-10
  • python輕量級性能工具-Locust詳解

    python輕量級性能工具-Locust詳解

    Locust基于python的協(xié)程機制,打破了線程進程的限制,可以能夠在一臺測試機上跑高并發(fā),這篇文章主要介紹了python輕量級性能工具-Locust,需要的朋友可以參考下
    2023-05-05
  • 關(guān)于Pyinstaller打包eel和pygame需要注意的坑

    關(guān)于Pyinstaller打包eel和pygame需要注意的坑

    這篇文章主要介紹了關(guān)于Pyinstaller打包eel和pygame需要注意的坑,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Pandas缺失值2種處理方式代碼實例

    Pandas缺失值2種處理方式代碼實例

    這篇文章主要介紹了Pandas缺失值2種處理方式代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06

最新評論

泗阳县| 北宁市| 崇文区| 尼木县| 香河县| 上高县| 常熟市| 东港市| 神池县| 红桥区| 湖口县| 上杭县| 龙井市| 安化县| 大庆市| 丰台区| 德钦县| 红河县| 栾川县| 辽宁省| 西乌珠穆沁旗| 永定县| 南皮县| 杂多县| 新安县| 永宁县| 鹤峰县| 浑源县| 临桂县| 德令哈市| 望城县| 平凉市| 凉城县| 高要市| 陕西省| 临邑县| 彭州市| 民乐县| 肃北| 林口县| 化德县|