主要内容 #
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)