本文适合阅读对象:已学完Python基础课程,并能熟练使用Python基本用法编程。如果还有一些其他语言的基础最好不过了,如果没有Python基础或者正在学习中,请点击以下链接:
Python基础教程
一、合并字典
Python中经常使用字典作为底层数据结构来表示数据,因此时常会遇到需要将字典合并的情况。大家一起看个例子,假设有下面两个字典:
xs = {'a':1, 'b':2}
ys = {'b':3, 'd':4}
现在要创建一个新的字典zs,合并包含xs和ys中的所有键和值。这里面还需要考虑如何处理重复键的冲突问题。
在Python中合并多个字典常用的办法是字典内置的update()方法:
zs = {}
zs.update(xs)
zs.update(ys)
print(zs)
Python代码结果如下:
由上面结果可以看出,合并生成了一个新字典zs,并且由于字典要求键值唯一,如果存在键值冲突,调用update()函数的顺序决定了冲突的解决,新字典总是以最后更新的字典中的值为准。
二、实现深层键值替换
前面讲了深层排序如何实现,那么接着大家可能会想到一个问题,如果应用场景是需要替换深层的键值,该怎么解决呢?事实上,在实际项目开发中是会遇到这个问题的,当然大家可以写个for - in 循环,然后进行替换,再将原来的键值删掉,但是这样不够优美,Python提供了pop() 函数,用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。
tuples=[{1:{'a':1}},{1:{'a':3}},{1:{'a':2}}]
print(tuples)
for i in range(len(tuples)):
tuples[i][1]['b'] = tuples[i][1].pop('a')
print(tuples)
Python代码结果如下所示,实现了深层键值的替换:
三、序列化字典
有一种方法能直观方便地将字典转换成可读结果,即使用json.dumps()将字典格式化为标准的json格式:
import json
data = { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 }
data1= json.dumps(data, indent=12, sort_keys = True)
print(data1)
Python代码结果如下:
发表评论 取消回复