Python內建函式總結

2021-09-25 00:17:05 字數 3373 閱讀 1477

lambda函式是python的匿名函式,匿名函式的意思是說它不需要函式名,因為某些函式太過簡單,並不需要單獨取個函式名。

# 將乙個資料新增100

def add(value):

return value + 100

# 等價於:

f = lambda x: x + 100

對於乙個可迭代的(iterable)/可遍歷的物件(如列表、字串),enumerate將其組成乙個索引序列,利用它可以同時獲得索引和值,enumerate多用於在for迴圈中得到計數。

# 獲取資料及下標

lst = ['this','is','a','test.']

print(list(enumerate(lst)))

[(0, 'this'), (1, 'is'), (2, 'a'), (3, 'test.')]

# stupid way

lst = ['this','is','a','test.']

for i in range(len(lst)):

print(i,lst[i])

# good way

for index, item in enumerate(lst):

print(index,item)

# =map

lst = [1,3,5,76,0,9]

result = [x+3 for x in lst]

print(result)

[4, 6, 8, 79, 3, 12]

# =filter

lst = [1,3,5,76,0,9]

result = [ x*2+8 for x in lst if x >5 ]

print(result)

[160, 26]

列表表示式比內建的map/filter/reduce更加清晰;

map/filter/reduce需要額外的lambda表示式的支援;

字典和集合也支援列表表示式;

列表解析的乙個不足就是必要生成所有的資料, 用以建立整個列表。這可能對有大量資料的迭代器有負面效應。生成器表示式通過結合列表解析和生成器解決了這個問題。

items = ( x + 10 for x in range(10) if x % 2)

print(items) # at 0x10ce3d390>

for i in items:

print(i)

1113

1517

19

對列表中的每乙個元素都需要執行fun操作;

# 語法: map(fun, iterable) --> map object

tp = (1,3,45,6)

result = map(lambda x: x +10 , tp)

print(result) # # 注意如下兩種情況輸出的結果不一樣;

# 生產器生成後輸出後就沒有了

# eg1

print(list(result))

for i in result:

print(i)

#--> [11, 13, 55, 16]

# eg2

for i in result:

print(i)

print(list(result))

# -->11

# -->13

# -->55

# -->16

# 優雅的表達

print(tuple(map(lambda x: x+10,tp))) #(11, 13, 55, 16, 21)

# 優雅的表達

print(list(map(lambda x: x+10,tp))) #[11, 13, 55, 16, 21]

# 注意事項

1. 列表中的元素型別,需要在函式中適配;

# 語法 filter(fun, iterable) ---> 可以迭代的序列, 相對fun的執行的結果是true

lst = [11, 13, 55, 16, 21]

result = filter(lambda x : x > 20, lst)

print(result) # print(list(result)) # [55, 21]

# 語法: reduce(fun,iterable) --> function—result

# fun 連續作用iterable的每乙個元素,新的引數為上一次執行的結果,

from functools import reduce # 在python 3中,它被移動到functools模組,要使用前我們需要匯入

lst =[11, 13, 55, 16, 21]

result = reduce(lambda x,y: x*y, lst)

print(result) #2642640

zip()函式用於將可迭代的物件作為引數,將物件中對應的元素打包成乙個個元組,然後返回由這些元組組成的物件,這樣做的好處是節約了不少記憶體。

# zip()是python的乙個內建函式,它接受一系列可迭代的物件作為引數,將物件中對應的元素打包成乙個個tuple(元組),

# 然後返回由這些tuples組成的list(列表)。

# 若傳入引數的長度不等,則返回list的長度和引數中長度最短的物件相同。利用*號操作符,可以將list unzip(解壓)

a = [1,2,3]

b = [4,5,6]

c = [7,8,9,10,11]

z1 = zip(a,b)

print(list(z1)) #[(1, 4), (2, 5), (3, 6)]

z2 = zip(a,c)

print(list(z2)) # [(1, 7), (2, 8), (3, 9)]

z3 = zip(*z2)

print(list(z3)) # [(1, 2, 3), (7, 8, 9)]

# 表示式 eval(expression, globals=none, locals=none)

# expression:是乙個字串,python會使用globals字典和locals字典作為全域性和區域性的命名空間,將expression當做乙個python表示式進行解析和計算。

a,b,c = 1,2,3

print(eval('a+b+c')) # 6

dict1 =

print(eval('d+f+e',dict1)) # 27

python內建函式總結

函式 功能簡要說明 abs x 返回數字x的絕對值 bin x 把數字x轉換為二進位制串 chr x 返回ascii編碼為x的字元 dir 返回指定物件的成員列表 eval s globals locals 計算字串中表示式的值並返回 float x 把數字或字串x轉換為浮點數並返回 help ob...

Python內建函式總結

函式 用途abs 返回數字絕對值 all 判斷給定的可迭代引數 iterable 中的所有元素是否都為 true,如果是返回 true,否則返回 false any 判斷給定的可迭代引數 iterable 是否全部為 false,則返回 false,如果有乙個為 true,則返回 true asci...

Python常用內建函式總結

內建方法 說明 init self,初始化物件,在建立新物件時呼叫 del self 釋放物件,在物件被刪除之前呼叫 new cls,args,kwd 例項的生成操作 str self 在使用print語句時被呼叫 getitem self,key 獲取序列的索引key對應的值,等價於seq key...