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 推导式总结:简化代码

 

posted @ 2020-04-30 10:31  君,子觞  阅读(142)  评论(0)    收藏  举报