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)
本文来自博客园,作者:{admin-xiaoli},转载请注明原文链接:{https://www.cnblogs.com/crackerroot}