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

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只是簡單地維護(hù)一個記錄底層映射關(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) #如果有重復(fù)的鍵,那么會采用第一個映射中所對應(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ìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

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

相關(guān)文章

  • pydev使用wxpython找不到路徑的解決方法

    pydev使用wxpython找不到路徑的解決方法

    pydev使用wx庫開發(fā)的過程中,import時碰到wx可以識別,但是其它很多函數(shù)和變量上面全部是紅叉,即無法識別
    2013-02-02
  • Python Pytorch深度學(xué)習(xí)之神經(jīng)網(wǎng)絡(luò)

    Python Pytorch深度學(xué)習(xí)之神經(jīng)網(wǎng)絡(luò)

    今天小編就為大家分享一篇關(guān)于Pytorch神經(jīng)網(wǎng)絡(luò)的文章,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-10-10
  • WIn10+Anaconda環(huán)境下安裝PyTorch(避坑指南)

    WIn10+Anaconda環(huán)境下安裝PyTorch(避坑指南)

    這篇文章主要介紹了WIn10+Anaconda環(huán)境下安裝PyTorch(避坑指南),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • Python使用sorted排序的方法小結(jié)

    Python使用sorted排序的方法小結(jié)

    這篇文章主要介紹了Python使用sorted排序的方法,結(jié)合三個實例分析了Python使用sorted方法進(jìn)行元素排序操作的相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2017-07-07
  • Python使用PymuPDF處理PDF文件的操作詳解

    Python使用PymuPDF處理PDF文件的操作詳解

    Python 中的 PymuPDF 是一個強(qiáng)大的庫,可以讓你輕松地處理 PDF 文件,本文將深入探討 PymuPDF 的用法,包括打開、讀取、修改和創(chuàng)建 PDF 文件,以及文本提取和頁面操作,感興趣的朋友可以參考下
    2023-12-12
  • 一篇文章帶你了解幾個好用的Python技巧

    一篇文章帶你了解幾個好用的Python技巧

    這篇文章主要介紹了幾個Python小技巧,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-10-10
  • Python中匹配模糊的字符串問題分析

    Python中匹配模糊的字符串問題分析

    這篇文章主要介紹了Python中匹配模糊的字符串的過程,我們將學(xué)習(xí)如何使用process 模塊,該模塊允許我們在模糊字符串邏輯的幫助下有效地匹配或提取字符串,需要的朋友可以參考下
    2023-09-09
  • Python中的json對象與string相互轉(zhuǎn)換教程

    Python中的json對象與string相互轉(zhuǎn)換教程

    python里有json這個庫,但并沒有json這個類,所以所謂的json對象本質(zhì)上就是一個dict;而json這個庫,用于實現(xiàn)dict到string、string到dict的互轉(zhuǎn),這篇文章主要介紹了Python中的json對象與string相互轉(zhuǎn)換教程,需要的朋友可以參考下
    2022-11-11
  • 詳解Python中元組的三個不常用特性

    詳解Python中元組的三個不常用特性

    元組是Python中一種重要的內(nèi)置數(shù)據(jù)類型。與列表一樣,我們經(jīng)常使用元組將多個對象保存為相應(yīng)的數(shù)據(jù)容器。本文為大家總結(jié)了元組的三個不常用特性,感興趣的小伙伴可以了解一下
    2022-07-07
  • Django中session登錄驗證操作指南

    Django中session登錄驗證操作指南

    本文介紹了如何使用Django中的session登錄驗證來保護(hù)網(wǎng)站的安全性。在此過程中,我們首先介紹了Django的認(rèn)證架構(gòu)和基本概念,然后我們深入探討了如何使用session實現(xiàn)登錄驗證功能。最后,我們解釋了如何創(chuàng)建一個Custom?User?Model,以及如何使用它來自定義用戶對象。
    2023-04-04

最新評論