python列表、集合、字典推导测试

#列表推式、字典推导式、集合推到式
#旧的列表--------->新的列表

#列表推到式:格式:[表达式 for 变量 in 旧列表] 或者[表达式 for 变量 in 旧列表 if 条件]
#集合推导式(列表推导基础上增加一个去除重复功能)  格式:{表达式 for 变量 in 旧列表} 或者{表达式 for 变量 in 旧列表 if 条件}
#字典推导式
#列表推式、字典推导式、集合推到式
#旧的列表--------->新的列表

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

#过滤掉长度小于3的项,类似filter功能
names = ['tom','huitao','jack','lucky','ko']
n_names = [name for name in names if len(name)>3]
print(n_names)
#首字母大写
n_namess = [name.capitalize() for name in names if len(name)>3 ]
#将1-100之间能被3和5整除,组成一个新的列表

newlist = [i for i in range(1,101) if i % 3 == 0 and i % 5 == 0]
print(newlist)

puckList = [(x,y) for x in range(5) if x % 2 == 0 for y in range(10) if y % 2 != 0]
print(puckList)#列表放元组

dict1 = {'name':'huitao','salary':4000}
dict2 = {'name':'weiping','salary':6000}
dict3 = {'name':'pengfei','salary':7000}
dict4 = {'name':'weixuan','salary':4200}

lisg = [dict1,dict2,dict3,dict4]
#如果薪资大于5000加200,低于5000加500
ne_lisg = [employee['salary']+200 if  employee['salary'] > 5000 else employee['salary'] +500 for employee in lisg]
print(ne_lisg)


#集合推导式(列表推导基础上增加一个去除重复功能)  格式:{表达式 for 变量 in 旧列表} 或者{表达式 for 变量 in 旧列表 if 条件}

list1 =[1,2,3,4,2,6,1]
#集合去重
set1 = {x for x in list1}
print(set1)

#字典推导式
#如果有个字典,我们想把key和value进行交换
dict1 = {'a':'A','b':'B','c':'C','d':'D'}
newdict = {value:key for key,value in dict1.items()}

print(newdict)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值