python 推导式

python 推导式

列表推导式

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# BY:wenchao.Li time: 2021/7/12

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

#过滤掉长度小于或者等于 3的名字
names=['bom','lucy','airbor','shaire','pom']
result=[name for name in names if len(name)>3]
print (result)

#过滤掉长度小于或者等于 3的名字并把首字母大写
result=[name.capitalize() for name in names if len(name)>3]
result1=[name.title() for name in names if len(name)>3]
print (result)
print (result1)

#将1-100内能被3整除并且被5整除的的列表输出
result=[num for num in range(1,100) if num % 3 == 0 and num % 5 == 0]
print (result)
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# BY:wenchao.Li time: 2021/8/23

dict1={'a':'A','b':'B','c':'C','d':'C'}
#字典推导式,这里我把key ,value 颠倒,这里他会去重,比如C的value,他会取值最后一个

newdict={value:key for key,value in dict1.items()}
print (dict1)
print (newdict)
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# BY:wenchao.Li time: 2021/8/23


#这是一段很普通的写法脚本,一大串
def func():
     newlist=[]
     for i in range(5): #偶数
         if i%2 == 0:
             for j in range(10):
                 if j%2 == 0: #偶数
                     newlist.append((i,j))
     return(newlist)

func()

#利用列表推导式,可以这样写替代
newlist=[(x,y) for x in range(5) if x % 2 == 0 for y in range(10) if y %2 ==0 ]
print (newlist)

字典推导式

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# BY:wenchao.Li time: 2021/8/23

dict1={'name':'xiaoming','selary':4000}
dict2={'name':'xiaohua','selary':6000}
dict3={'name':'xiaoli','selary':3000}
dict4={'name':'xiaozhao','selary':9000}

#字段推导式,如果用到if,else的话,if ,else需要用到for前面

list1=[dict1,dict2,dict3,dict4]
print (list1)

#薪资大于5000的每人加200,低于5000的每人加500,这一步加的只是工资,得到一个新的工资列表列表
newlist=[employee['selary'] + 200 if  employee['selary'] > 5000 else employee['selary'] + 500  for employee in list1]
print (newlist)

集合推导式

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# BY:wenchao.Li time: 2021/8/23

list=[1,2,3,5,1,2,3,4]

#根据list,在list值的基础上生成集合,集合会自动重复,并在基础上加1
set1={x+1 for x in list}
print(set1)
posted @   liwenchao1995  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示