本文摘自php中文网,作者不言,侵删。
这篇文章主要介绍了Python cookbook(数据结构与算法)将多个映射合并为单个映射的方法,结合实例形式分析了Python字典映射合并操作相关实现技巧,需要的朋友可以参考下本文实例讲述了Python将多个映射合并为单个映射的方法。分享给大家供大家参考,具体如下:
问题:在逻辑上将多个字典或映射合并为一个单独的映射结构,以此执行某些特定的操作,比如查找值或者检查键是否存在
解决方案:利用collections
模块中的ChainMap
类
ChainMap
可接受多个映射然后在逻辑上使它们表现为一个单独的映射结构。这些映射在字面上并不会合并在一起。相反,ChainMap
只是简单地维护一个记录底层映射关系的列表,然后重定义常见的字典操作来扫描这个列表。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | a = { 'x' : 1 , 'z' : 3 }
b = { 'y' : 2 , 'z' : 4 }
from collections import ChainMap
c = ChainMap(a,b)
print (c[ 'x' ])
print (c[ 'y' ])
print (c[ 'z' ])
print ( 'len(c):' , len (c))
print ( 'c.keys():' , list (c.keys()))
print ( 'c.values():' , list (c.values()))
c[ 'z' ] = 10
c[ 'w' ] = 40
print ( "a:" , a)
del c[ 'x' ]
print ( "a:" , a)
values = ChainMap()
values[ 'x' ] = 1
values = values.new_child()
values[ 'x' ] = 2
values = values.new_child()
values[ 'x' ] = 3
print (values)
print (values[ 'x' ])
values = values.parents
print (values)
print (values[ 'x' ])
values = values.parents
print (values)
print (values[ 'x' ])
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | >>> = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 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操作的是原始字典,可以避免一些令人不悦的行为,例如其中任何一个原始字典的修改无法反应到合并后的字典中。
1 2 3 4 5 6 7 8 9 10 11 12 13 | >>> 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》)
相关推荐:
Python cookbook(字符串与文本)针对任意多的分隔符拆分字符串操作
以上就是Python cookbook(数据结构与算法)将多个映射合并为单个映射的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
ansible作为Python模块库使用的方法
Python如何使用numpy
Python里的self用法
爬虫基本流程request和response的介绍
Python十进制转二进制
实例解析Python如何实现爬取京东手机图片
Python中的mkdir方法怎么用
Python list对象中嵌套元组使用sort的排序方法
Python如何对excel数据进行处理
Python怎么自学要那本书
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » Python cookbook(数据结构与算法)将多个映射合并为单个映射