主要内容 #
1. 字典推导表达式的定义 #
2. 字典推导表达式:zip #
字典推导表达式中可以使用zip函数,语法如下: dict1={a:b for a, b in zip(list_a, list_b)} 功能: 将两个迭代对象(list_a和list_b)中的元素逐一按表达式(a:b)进行操作,最终得到字典,并赋值给变量dict1 等价于:
dict1 ={}
for a,b in zip(list_a, list_b):
dict1[a] = b
程序示例:
name = ["小明" , "莉莉", "大雄"]
Chinese = [85 , 96, 80]
score = {key1: key2 for key1,key2 in zip(name, Chinese)}
print(score)
#等价于以下方法:
'''
score = dict()
for key1,key2 in zip(name, Chinese):
score[key1] = key2
print(score)
'''
3. 字典推导表达式:函数 #
字典推导表达式中可以使用函数,语法如下: dict1={a: f(a) for a in list_a} 功能: 将一个迭代对象()list_a中的元素逐一按表达式f(a)进行操作,最终得到字典,并赋值给变量dict1 等价于:
dict1 = {}
for a in list_a:
dict1[a] = f(a)
程序示例:
给定20以内的数字,获取其平方,存在字典里
score = {i: i**2 for i in range(20)}
print(score)
#等价于以下方法:
'''
score = dict()
for i in range(20):
score[i] = i**2
print(score)
'''
使用lambda函数的方法:
name = ["张小明" , "王莉莉", "李大雄"]
last_name = {i:i[0] for i in name} # 获取姓
print(last_name)
使用函数的方法:
def is_pass(score):
if score>=60:
return "及格"
else:
return "不及格"
Chinese = [85 , 96, 50]
pass1 = {score: is_pass(score) for score in Chinese} #判断是否及格
print(pass1)