0x01:filter(function,iterable)
- filter()函式用於過濾序列,過濾掉不符合條件的元素,返回由符合條件元素組成的新列表。
- 接收兩個引數,第一個為函式,第二個為序列(可迭代物件),序列的每個元素作為引數傳遞給函式進行判斷,返回True或False,將返回True的元素放到新列表中。
- 返回值是filter類的一個物件,可以用list函式轉化成列表
eg:輸出1-100內所有的完全平方數
1 import math 2 def is_sqr(x): 3 return math.sqrt(x) % 1 == 0 4 print(list(filter(is_sqr, range(1, 101))))
輸出結果如下:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
0x02:enumerate(iterable, start)
- 函式用於將一個可遍歷的資料物件(如列表、元組或字串)組合為一個索引序列,同時列出資料和資料下標,一般用在 for 迴圈當中
- 返回一個enumerate類的物件
- 接受兩個引數,第一個是資料物件,第二個是索引開始的位置
1 s = ['a', 'b', 'c', 'c'] 2 print(type(enumerate(s))) 3 for a, b in enumerate(s, start=9): 4 print('下標{}'.format(a), end=' ') 5 print('值{}'.format(b))
輸出結果如下:
<class 'enumerate'>
下標9 值a
下標10 值b
下標11 值c
下標12 值c
0x03:isinstance
- 判斷一個物件是否為某一資料型別
- 判斷子類是否繼承與某個父類,isinstance會認為子類屬於父類的型別,而type不會。
- 接受兩個引數,第一個引數為資料物件,第二個引數為資料型別,或資料型別組成的元祖
1 class A(object): 2 pass 3 class B(A): 4 pass 5 6 b = B() 7 print(isinstance(b, A)) # 判斷b是否屬於父類A,isinstance返回True,type返回false 8 print(type(b) == A) 9 10 a = 3 11 c = 6 12 print(isinstance(a, int)) # 判斷物件是否屬於int型別 13 print(isinstance(c, (str, list, tuple, int))) # 判斷物件是否屬於遠足中資料型別中的任一個
輸出結果如下:
True
False
True
True
0x04:lambda
- 格式:lambda [parameter_list] : lambda後是引數,如果有多個引數,用 , 隔開, :後是返回值,一般是對出傳入的引數的操作或判斷
- 使用 lambda 表示式,可以定義簡單的單行函式,省去定義函式的過程,不需要使用def關鍵字,讓程式碼更加簡潔。
- 對於不需要多次複用的函式,使用 lambda 表示式可以在用完之後立即釋放,提高了效能。
f = lambda x, y, z :x+y+z a = f(1,2,3) print(a)
輸出結果:
6
可以理解成使用lambda關鍵字定義了一個f物件,這個物件需要傳入x y z三個引數,並把運算x+y+z後的結果返回給a
(ps:還處於起步的小菜雞,若有錯誤,大佬們隨時指正。。。。。嘻嘻)
*************************不積跬步,無以至千里。*************************