列表推导式
字典推导式
集合推导式
只有这三类有推导式,字符串和元组 没有推导式,推导式的作用是简化代码
一、列表推导式:
作用,用一个表达式创建一个有规律的列表或控制一个有规律列表,列表推导式又叫做列表生成式
创建一个0-10的列表
1、while循环实现
2、for循环实现
3、列表推导式
列表推导式,所以用[]
# 需求,将0-10放到列表中
# 思路,先创建一个空列表,然后用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实现------------------------
list2 = []
for i in range(10):
list2.append(i)
print(list2)
# 输出 [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]
带if的列表推导式
list1 = [i for i in range(0, 10, 2)]
print(list1)
list2 = []
for i in range(0, 10):
if i % 2 == 0:
list2.append(i)
print(list2)
list3 = [i for i in range(0, 10) if i % 2 ==0]
print(list3)
多个for循环实现列表推导式
list1 = []
for i in range(1, 3):
for j in range(3):
list1.append((i, j))
print(list1)
list2 = [(i, j) for i in range(1, 3) for j in range(3)]
print(list2)
二、字典推导式:
字典推导式作用,快速合并列表为字典,或提取字典中目标数据
体验字典推导式
dict1 = {i: i**2 for i in range(1, 5)}
print(dict1)
2.1合并列表为字典
list1 = ["name", "age", "sex"]
list2 = ["test", 11, "男"]
dict1 = {list1[i]: list2[i] for i in range(len(list1))}
print(dict1)
注意:
1、如果两个列表数据个数相同,len统计任何一个列表的长度都可以
2、如果两个列表数据个数不相同,len统计数据多的列表数据个数会报错,len统计数据烧的列表数据不会报错。
2.2提取字典中的目标数据
输出value大于等于80的 数据
counts = {"test1": 90, "test2": 80, "test3": 85, "test4": 60, "test5": 40}
count1 = {key: value for key, value in counts.items() if value >= 80}
print(count1)
三、集合推导式
创建一个集合,数据为下方列表的2次方
list1 = [1, 1, 3],集合自动去重
list1 = [1, 1, 3]
set1 = {i ** 2 for i in list1}
print(set1)
总结:
推导式,简化代码,列表、字典、集合
写法:
列表推导式:
[xx for xx in range() ] 创建有规律列表
字典推导式
{xx1:xx2 for .... in ...} 快速合并列表为字典或者提取指定数据
集合推导式
(xx for xx in ...) 去重