作用:用一个表达式创建一个有规律的列表或控制一个有规律的列表。
列表推导式又称列表生成式。
1. 一般列表推导式
示例:创建列表[0-9]
- while循环
# while循环
list1 = []
i = 0
while i < 10:
list1.append(i)
i += 1
print(list1) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- for循环
# for循环
list1 = []
for i in range(10):
list1.append(i)
print(list1) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- 列表推导式
# 列表推导式
list1 = [i for i in range(10)]
print(list1) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
2. if列表推导式
示例:创建[0-9]偶数列表
- range()
list1 = [i for i in range(0, 10, 2)]
print(list1) # [0, 2, 4, 6, 8]
- if列表推导式
list1 = [i for i in range(10) if i % 2 == 0]
print(list1) # [0, 2, 4, 6, 8]
3. for嵌套列表推导式
示例:
list1 = [(i, j) for i in range(2, 5) for j in range(2, 5)]
print(list1) # [(2, 2), (2, 3), (2, 4), (3, 2), (3, 3), (3, 4), (4, 2), (4, 3), (4, 4)]
1. 一般字典推导式
示例:
dict1 = {i: i * 5 for i in range(1, 6)}
print(dict1) # {1: 5, 2: 10, 3: 15, 4: 20, 5: 25}
2. 列表合并为字典推导式
示例:
list1 = ['name', 'age', 'id']
list2 = ['Jack', 12, '123']
dict1 = {list1[i]: list2[i] for i in range(len(list1))}
print(dict1) # {'name': 'Jack', 'age': 12, 'id': '123'}
3. 提取元素字典推导式
示例:
p1 = {'Jack': 12, 'Travis': 18, 'Taylor': 21}
p2 = {key: value for key, value in p1.items() if value >= 18}
print(p2) # {'Travis': 18, 'Taylor': 21}
示例:
list1 = [12, 23, 34, 12]
set1 = {i * 5 for i in list1}
print(set1) # {170, 115, 60}
12
Levi_5