python之路 列表 字典生成式及匿名函式

2021-08-22 02:51:02 字數 2327 閱讀 2165

列表解析:

l = ['aaa','bbb','ccc']    #將l內的元素全部變為大寫...

l =

for i in l:

print(l)

#使用列表解析:

l = [i.upper() for i in l]

print(l)

#for之後可以跟個if判斷語句(但不能有else)

l = ['aaa','bbb','ccc']

l = [i.upper() for i in l if i.endswith('c')]

print(l)

字典生成式:

l1 = ['name','age','***']

l2 = ['bob',23,'men']

d =

print(d)

--->

#d =

-->生成的是集合

匿名函式:

def 函式名() --->建立的是有名函式,使函式名指向函式體的記憶體位址,因此可以重複呼叫,而匿名函式,顧名思義函式體是沒有與變數名存在繫結關係的

注:1.給匿名函式賦名是沒有意義的

2.匿名函式的引數規則與作用域與有名函式一致

3.匿名函式的函式體應該是乙個表示式,並且該表示式必須有返回值

匿名函式通常與內建函式結合使用:

1.與max():取出乙個可迭代物件的最大值

d = 

print(max(d))

#---->max首先實現乙個類似for迴圈的功能(迭代器協議),遍歷字典的key,按照字串的原則的比較大小

def func(key):

return d[key]

print(max(d,key=func))

#--->實現原理是,max對第一引數(可迭代物件)進行for迴圈,將得到的值作為引數傳給函式func,然後以函式func的返回值作為比較依據,

#而func在這裡僅僅是提供給內建函式max()使用,所以完全可以將其變成匿名函式

print(max(d,key=lambda x:d[x]))

2.min()的用法與max()類似:取出乙個可迭代物件的最小值

3.map():對映:將後面的可迭代物件按照前面的規則對映成新的物件---->在python2中得到的是乙個列表,3中則是乙個迭代器

#python2

> names = ('1','2','3','4')

>>> res=(map(lambda x:x+'a',names))

>>> print res

['1a', '2a', '3a', '4a']

#python3

names = ('1','2','3','4')

res=(map(lambda x:x+'a',names))

print(res)

print(iter(res) is res)

--->

true

4:reduce():將多值合併成乙個列表  

from functools import reduce

res = reduce(lambda x,y:x+y,range(100))

print(res)

--->

4950

z = ['love','your']

res1 = reduce(lambda x,y:x+' '+y,z,'i')

print(res1)

--->

i love your

#第三個引數為初始值,如果不指定,則在第二個引數中拿出乙個作為初始值

5:filter() ---->過濾出為true的  --->python3中生成的是迭代器

l = [1,2,3,4,5,6,7]

res = filter(lambda x:x>3,l)

print(res)

print(list(res))

--->過濾出大於3的數字

[4, 5, 6, 7]

d =

print(list(filter(lambda key:d[key]>30,d)))

--->過濾出大於30歲的人

'b0b'

Python 列表 字典 生成式

列表生成式 格式 expression for i in 序列 if 題目1 生成乙個列表,列表元素分別為 12,22,32,n2 一般方法 for i in range 1,9 print li 結果 1,4,9,16,25,36,49,64 列表生成方式 print i 2 for i in r...

python生成式 列表 字典 集合

python的3類生成式 列表生成式 字典生成式 集合生成式 1 python列表生成式 my data 1,2,3 4,5,6 7,8,9 print my data s my data rows to keep row for row in my data if row 2 5 print ro...

python 列表生成式,字典生成式

生成乙個列表,列表元素分別為 1 1,2 2.9 9 import math li for i in range 1,10 print li print i i for i in range 1,10 print i i for i in range 1,10 if i 2 0 找出1 10之間的所...