分类
列表推导式
作用:用一个表达式创建一个有规律的列表或控制一个有规律列表。
列表推导式又叫列表生成式。
实例
需求:创建一个 0-10 的列表。
1 2 3 4 5 6 7 8 9 10
| list1 = []
i = 0 while i < 10: list1.append(i) i += 1
print(list1)
|
1 2 3 4 5
| list1 = [] for i in range(10): list1.append(i)
print(list1)
|
1 2
| list1 = [i for i in range(10)] print(list1)
|
带 if 的列表推导式
需求:创建 0-10 的偶数列表
1 2
| list1 = [i for i in range(0, 10, 2)] print(list1)
|
1 2
| list1 = [i for i in range(10) if i % 2 == 0] print(list1)
|
多个 for 循环实现列表推导式
需求:创建列表如下:
1
| [(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
|
1 2
| list1 = [(i, j) for i in range(1, 3) for j in range(3)] print(list1)
|
字典推导式
思考:如果有如下两个列表:
1 2
| list1 = ['name', 'age', 'gender'] list2 = ['Tom', 20, 'man']
|
如何快速合并为一个字典?
答:字典推导式
字典推导式作用:快速合并列表为字典或提取字典中目标数据。
实例
- 创建一个字典:字典 key 是 1-5 数字,value 是这个数字的 2 次方。
1 2
| dict1 = {i: i**2 for i in range(1, 5)} print(dict1)
|
- 将两个列表合并为一个字典
1 2 3 4 5
| list1 = ['name', 'age', 'gender'] list2 = ['Tom', 20, 'man']
dict1 = {list1[i]: list2[i] for i in range(len(list1))} print(dict1)
|
- 提取字典中目标数据
1 2 3 4 5
| counts = {'MBP': 268, 'HP': 125, 'DELL': 201, 'Lenovo': 199, 'acer': 99}
count1 = {key: value for key, value in counts.items() if value >= 200} print(count1)
|
集合推导式
需求:创建一个集合,数据为下方列表的 2 次方。
代码如下:
1 2 3
| list1 = [1, 1, 2] set1 = {i ** 2 for i in list1} print(set1)
|
注意:集合有数据去重功能。
总结
1 2 3 4 5 6 7 8
| [xx for xx in range()]
{xx1: xx2 for ... in ...}
{xx for xx in ...}
|