2021-08-26 Python之列表推导式

#列表推导式 字典,集合推导式

#旧的列表--->新的列表

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

1 #过滤掉长度小于或者等于3的人名
2 names=['tom','lily','asdc','aa','tosoda']
3 result=[name for name in names if len(name)>3]
4 print(result)
5 
6 result=[name.capitalize() for name in names if len(name)>3]
7 print(result)
1 def func(names):
2     newlist=[]
3     for name in names:
4         if len(name)>3:
5             name=name.title()
6             newlist.append(name)
7     return newlist
1 #将1-100之间能被3整除的组成一个新的列表
2 newlist=[i for i in range(1,101) if i%3==0 and i%5==0]
3 print(newlist)

#0-5的偶数,0-10的奇数组成元组
#[(偶数,奇数),(),(),()]

 1 def func():
 2     newlist=[]
 3     
 4     for i in range(5):
 5         if i%2==0:
 6             for j in range(10):
 7                 if j%2!=0:
 8                     newlist.append((i,j))
 9     return newlist
10 x=func()
11 print(x)

#用列表推导式实现题目( 带if 条件 ) 

1 newlist=[(x,y) for x in range(5) if x%2==0 for y in range(10) if y%2!=0]
2 print(newlist)

#不带条件的推导式

1 list1=[[1,2,3],[3,4,5],[5,6,7]]
2 newlist=[i[-1] for i in list1]
3 print(newlist)

#字典的列表推导式

1 d1={'name':'tom','salary':5000}
2 d2={'name':'jack','salary':6000}
3 d3={'name':'lily','salary':3000}
4 d4={'name':'taylor','salary':4000}
1 list1=[d1,d2,d3,d4]
2 #if  salsry>5000 ,salary+200 , salary<=5000,salary+500
3 newlist=[employee['salary']+200 if employee['salary']>5000 else employee['salary']+500 for employee in list1]
4 print(newlist)

#集合推导式
# {} 类似列表推导式,在列表推导式的基础上添加一个去除重复项

1 list1=[1,2,3,4,3,4,5,6]
2 set1={x for x in list1}
3 print(set1)

#字典推导式

1 d1={'a':'A','b':'B','c':'C'}
2 newd={value:key for key,value in d1.items()}
3 print(newd)

 

posted @ 2021-08-26 14:09  admin-xiaoli  阅读(54)  评论(0编辑  收藏  举报