只有列表,字典,集合有推导式,作用为化简代码
列表推导式
作用:用一个表达式创建一个有规律的列表或控制一个有规律的列表
eg:创建一个0-10的列表
不用推导式
list1=[]
for i in range(11):
list1.append(i)
i+=1
使用推导式
list1=[i for i in range(11)]
带if的列表推导式
eg:创建0-10的偶数列表
list1=[i for i in range(11) if i%2==0]
多个for循环实现列表推导式
eg:创建一个[(1,0),(1,1),(1,2),(2,0),(2,1),(2,2)]的列表
list1=[(i,j) for i in range(1,3) for j in range(0,3)]
相当于
for i in range(1,3):
for j in range(0,3):
list1.append((i,j))
字典推导式
作用:快速合并为列表为字典或提取字典中的目标数据
eg:创建个字典,字典key是1-5的数字,value是这个数据的2次方
dict1={i:i**2 for i in range(1,6)}
eg:将两个列表合并为字典
list1=['name','age','gender']
list2=['pjx','20','男']
dict1={list1[i]:list2[i] for i in range(len(list1))}
提取字典中的目标数据
eg:查看出售电脑量>200的品牌
counts={'MBP':268,'HP':125,'DELL':201,'Lenovo':199}
count1={key:value for key,value in counts.items() if value>200}
集合推导式
需求:创建个集合,数据为[1,1,2]中数据的2次方
list1=[1,1,2]
set1={i**2 for i in list1}
print(set1) # {1, 4} 注意集合有去重功能