继续整理python------推导式

56 阅读1分钟

一、列表推导式

格式:[表达式 for 变量 in 旧列表] 或 [表达式 for 变量 in 旧列表 if 条件]

names = ['a','s','lucy','jason','hh']  
  
# 过滤掉小于等于3的人们  
  
result = [name for name in names if len(name)>3]  
print(result)  
  
result = [(x,y) for x in range(5) if x%2==0 for y in range(10) if y%2 !=0]  
print(result)

二、if...else...的列表推导式

格式:[表达式 if 表达式 else 表达式 for 变量 in 旧列表]

dict1 = {"name":'tom','salary':5000}  
dict2 = {"name":'lucy','salary':8000}  
dict3 = {"name":'jack','salary':4500}  
dict4 = {"name":'lily','salary':3000}  
  
list1 = [dict1,dict2,dict3,dict4]  
  
# if薪资大于5000加200,低于等于5000加500  
newlist = [employee['salary']+200 if employee['salary']>5000 else employee['salary']+500 for employee in list1]  
  
print(newlist)

三、集合推导式{}

格式:{x for x in list if 表达式}

names = ['a','s','lucy','jason','hh']
set1 = {x for x in names if len(x)>3}  
print(set1)

四、字典推导式

格式:{value:key for key,value in dict.items()}