Python-推导式
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 print("----推导式学习----") 4 """ 5 推导式:更有风格的Python代码,化简代码用 6 列表推导式 7 字典推导式 8 集合推导式 9 (其它没有推导式) 10 """ 11 print('列表推导式:用一个表达式创建一个有规律的列表或控制一个有规律的列表') 12 # 创建一个0-10的列表 13 list1 = [] # 1.创建一个空列表 14 i = 0 15 while i < 11: # 2.循环添加数据 16 list1.append(i) 17 i += 1 18 list2 = [] # 方法2,实现 19 for i in range(11): 20 list2.append(i) 21 print(list1, list2) 22 list3 = [i for i in range(11)] # 列表推导式 23 print('列表推导式实现:', list3) 24 # 创建0-10的偶数列表 25 list4 = [i for i in range(0, 11, 2)] # range()的步长实现 26 print(list4) 27 list5 = [i for i in range(11) if i % 2 == 0] 28 print(list5) 29 # 多for循环推导式。如:[(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)] 30 list6 = [(i, j) for i in range(1, 3) for j in range(3)] 31 print(list6) 32 33 print('字典推导式:快速合并列表或提取字典中目标数据') 34 # 创建一个字典,字典的key是1-5数字,value是这个数的2次方 35 dict1 = {i: i**2 for i in range(1, 6)} 36 print(dict1) 37 # 将两个列表合并为一个字典 38 list7 = ['name', 'age', 'gender'] 39 list8 = ['Tom', 20, 'man'] 40 dict2 = {list7[i]: list8[i] for i in range(len(list7))} 41 print(dict2) 42 # 提前字典中的目标数据,例:提前分数大于等于80 43 dict3 = {'语文': 80, '数学': 97, '化学': 79} 44 dict4 = {key: value for key, value in dict3.items() if value >= 80} 45 print(dict4) 46 47 print('集合推导式,使用率并不高') 48 list9 = [1, 1, 2] 49 set1 = {i ** 2 for i in list9} 50 print(set1) # 注意集合会自动去重 51 52 print('推导式总结:简化代码') 53 """ 54 列表推导式:[x for x in range()] 55 字典推导式:{x: y for ... in ...} 56 集合推导式:{x for x in ...} 57 """
运行结果:
1 ----推导式学习---- 2 列表推导式:用一个表达式创建一个有规律的列表或控制一个有规律的列表 3 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 4 列表推导式实现: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 5 [0, 2, 4, 6, 8, 10] 6 [0, 2, 4, 6, 8, 10] 7 [(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)] 8 字典推导式:快速合并列表或提取字典中目标数据 9 {1: 1, 2: 4, 3: 9, 4: 16, 5: 25} 10 {'name': 'Tom', 'age': 20, 'gender': 'man'} 11 {'语文': 80, '数学': 97} 12 集合推导式,使用率并不高 13 {1, 4} 14 推导式总结:简化代码

浙公网安备 33010602011771号