058 字典的合并及zip解包
主要内容
1. 字典的合并
字典的合并,即将两个字典合并成一个字典,常规方法如下:
dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 3, "d":4}
dict3 = dict()
for key, value in dict1.items():
dict3[key] = value
for key, value in dict2.items():
dict3[key] = value
print(dict3)
更加简便的做法是使用"**"合并字典
首先,一个*号的作用是提取字典的键值,然后组成一个集合(集合在第65课详解),比如:
dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 3, "d":4}
s1 = {*dict1}
print(s1)
s2 = {*dict2}
print(s2)
两个*号的作用是提取字典的键值对,然后组成一个字典,比如:
dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 3, "d":4}
dict3 = {**dict1}
print(dict3)
dict4 = {**dict2}
print(dict4)
合并两个字典,可以使用以下方法:
dict1 = {"a": 1, "b": 2}
dict2 = {"b": 3, "c": 3, "d":4}
dict3 = {**dict1, **dict2}
print(dict3)
2. zip解包
使用*号操作符,可以将元组列表解包(unpack)为元组 格式如下: list1 = zip(*元组列表) 功能:将一个已经打包好的元组列表解包,元组元素对应位置放置在一个元组中,最终保存在新的元组里 例如: 给定一个列表 c = [(1,2),(2,3),(3,4),(4,5),(5,6),(6,7)] 将其解包,赋值给a和b
c = [(1,2),(2,3),(3,4),(4,5),(5,6),(6,7)]
a, b = zip(*c)
print(a)
print(b)
给定两个列表
a = [1,2,3,4,5,6], b = [2,3,4,5,6,7]
将其打包成c,再解包成a1和b1。
观察a和a1,b和b1的区别,即可发现,
解包后的元素都是元组,即不管是列表,元组,甚至是字典的打包后的解包,都保存在元组中。
a = [1,2,3,4,5,6]
b = [2,3,4,5,6,7]
c = zip(a, b)
a1, b1 = zip(*c)
print(a1)
print(b1)
3. 小结
OJ训练题
1、练23.3 晶晶赴约会 - ★
2、【入门】能被2、3、5、7中至少2个数整数的数 - ★
3、【入门】三位回文数 - ★
4、【入门】数字矩形(2) - ★★
5、练36.1 矩阵对角线元素之和 - ★★★