1、列表推导式
2、字典推导式
3、集合推导式
列表推导式
作用:用一个表达式创建一个有规律的列表或控制一个有规律列表。
列表推导式又叫列表生成式。
实例:
#需求:创建一个0-10的列表
#while循环实现
#1.准备一个空列表
list1 = []
#2.书写循环,依次追加数字到空列表list1中
i = 0
while 1 < 10:
liest1.append(i)
i += 1
print(list1)
#for 循环实现
list1 = []
for i in range(10):
list1.append(i)
print(list1)
#列表推导式实现
list1 = [i for i in range(10)] #第一个 i 是整个列表推导式要返回的数据,第二个 i 是for循环
#返回的0,1,2,3.......
print(list1)
带 if 列表推导式写法:
#需求:创建0-10的偶数列表
#方法一:range()步长实现
list1 = [i for i in range(0,10,2)]
print(list1)
#方法二:if实现
list2 = [i for i in range(10) if i % 2 ==0]
print(list2)
多个for循环实现列表推导式
#需求:创建列表如下:
[(1,0),(1,1),(1,2),(2,0),(2,1),(2,2)]
#for 循环实现
list1 = []
for i in range(1,3):
for j in range(3):
list1.append((i,j))
print(list1)
#推导式实现 for 的列表推导式就等同于for循环嵌套
list1 = [(i,j) for i in range(1,3) for i in range(3)]
print(list1)
字典推导式
字典推导式作用:快速合并列表为字典或提取字典中目标数据。
实例
#需求:创建一个字典:字典key是1-5的数字,value是这个数字的2次方。
dict1 = {i: i**2 for i in range(1-5)}
print(dict1)
#输出{1:1,2:4,3:9,4:16}
#将两个列表合并为一个字典
list1 = ["name","age","gender"]
list2 = ['Tom',20,'man']
dict1 = {list1[i]:list2[i] for i in range(len(list1))}
print(dict1)
#注意:如果两个列表数据个数相同,len统计任何一个列表的长度都可以
# :如果两个列表数据个数不同,len统计数据多的列表个数会报错,len统计数据少的列表个数不会报错
#提取字典中目标数据
counts = {'MBP':268,'HP':125,'DELL':201,'Lenovo':199,'acer':99}
#需求:提取上述电脑数量大于等于200的字典数据
count1 = {key: value for key, value in counts. Items() if value >= 200}
print(count1) #{'MBP':268.'DELL':201}
集合推导式
集合推导式的在平时使用的频率较低
实例
#需求:创建一个集合,数据为下方列表的2次方
list1 =[1,1,2]
set = {i ** 2 for i in list1}
print(set1) #输出 {1,4} (集合数据有去重功能)
总结
推导式的作用:简化代码
#推导式写法:
#列表推导式
[xx for xx in range()]
#字典推导式
{xx1 : xx2 for ... in ...}
#集合推导式
{xx for xx in ...}