056 字典生成式
一、字典生成式
字典生成式就是快速生成字典的一个方法
用法:
new_dic = {k:v for k,v in {"a":1,"b":2}.items()} # 字典生成式
print(new_dic)
res = {i:i**i for i in range(10)} # 字典生成式
print(res)
{'a': 1, 'b': 2}
二、zip()方法
zip函数(拉链函数) 会将两个列表合并成一个大列表,列表中里面包了元组。
zip方法必须传递两个长度一样的可迭代对象。
zip()函数用法:
z = zip(['a', 'b', 'c', 'd'], [1, 2, 3, 4]) # 压缩方法,Python解释器的内置方法,得到 zip类型变量
for i in z:
print(i)
('a', 1)
('b', 2)
('c', 3)
('d', 4)
三、字典生成式与zip()方法连用
字典生成式一般与zip()方法连用。zip方法必须传递两个长度一样的可迭代对象。
zip方法必须传递两个长度一样的可迭代对象。
第一种用法:
z = zip(['a', 'b', 'c', 'd'], [1, 2, 3, 4]) # 压缩方法,Python解释器的内置方法,得到 zip类型变量
new_dic = {k: v ** 2 for k, v in z} # 字典生成式
print(new_dic)
{'a': 1, 'b': 4, 'c': 9, 'd': 16}
第二种用法:
z = zip(['a', 'b', 'c', 'd'], [1, 2, 3, 4]) # 压缩方法,Python解释器的内置方法,得到 zip类型变量
new_dic = {k: v ** 2 for k, v in zip(['a', 'b', 'c', 'd'], [1, 2, 3, 4]) } # 字典生成式,另一种形式
print(new_dic)
{'a': 1, 'b': 4, 'c': 9, 'd': 16}