主要内容 #
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
dict1 ={}
for a,b in zip(list_a, list_b):
dict1[a] = b
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)
'''
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)
'''
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)
dict1 = {}
for a in list_a:
dict1[a] = f(a)
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)
'''
score = {i: i**2 for i in range(20)}
print(score)
#等价于以下方法:
'''
score = dict()
for i in range(20):
score[i] = i**2
print(score)
'''
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)
name = ["张小明" , "王莉莉", "李大雄"]
last_name = {i:i[0] for i in name} # 获取姓
print(last_name)
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)
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)
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)