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 @ 2023-07-14 15:58  liwenchao1995  阅读(4)  评论(0编辑  收藏  举报