標籤:blog hex 一點 pow rabl html 現在 工作 根據
內建函數
接下來,我們就一起來看看python裡的內建函數。截止到python版本3.6.2,現在python一共為我們提供了68個內建函數。它們就是python提供給你直接可以拿來使用的所有函數。這些函數有些我們已經用過了,有些我們還沒用到過,還有一些是被封印了,必須等我們學了新知識才能解開封印的。那今天我們就一起來認識一下python的內建函數。這麼多函數,我們該從何學起呢?
| |
|
Built-in Functions |
|
|
| abs() |
dict() |
help() |
min() |
setattr() |
| all() |
dir() |
hex() |
next() |
slice() |
| any() |
divmod() |
id() |
object() |
sorted() |
| ascii() |
enumerate() |
input() |
oct() |
staticmethod() |
| bin() |
eval() |
int() |
open() |
str() |
| bool() |
exec() |
isinstance() |
ord() |
sum() |
| bytearray() |
filter() |
issubclass() |
pow() |
super() |
| bytes() |
float() |
iter() |
print() |
tuple() |
| callable() |
format() |
len() |
property() |
type() |
| chr() |
frozenset() |
list() |
range() |
vars() |
| classmethod() |
getattr() |
locals() |
repr() |
zip() |
| compile() |
globals() |
map() |
reversed() |
__import__() |
| complex() |
hasattr() |
max() |
round() |
|
| delattr() |
hash() |
memoryview() |
set() |
|
上面就是內建函數的表,68個函數都在這兒了。這個表的順序是按照首字母的排列順序來的,你會發現都混亂的堆在一起。比如,oct和bin和hex都是做進位換算的,但是卻被寫在了三個地方。。。這樣非常不利於大家歸納和學習。那我把這些函數分成了6大類。你看下面這張圖,你猜咱們今天會學哪幾大類呀?
filter
filter()函數接收一個函數 f 和一個list,這個函數 f 的作用是對每個元素進行判斷,返回 True或 False,filter()根據判斷結果自動過濾掉不合格元素,返回由符合條件元素組成的新list。
例如,要從一個list [1, 4, 6, 7, 9, 12, 17]中刪除偶數,保留奇數,首先,要編寫一個判斷奇數的函數:
def is_odd(x): return x % 2 == 1
for i in filter(is_odd, [1, 4, 6, 7, 9, 12, 17]):
print(i) ----->結果為:1,7,9,17
map
Python中的map函數應用於每一個可迭代的項,返回的是一個結果list。如果有其他的可迭代參數傳進來,map函數則會把每一個參數都以相應的處理函數進行迭代處理。map()函數接收兩個參數,一個是函數,一個是序列,map將傳入的函數依次作用到序列的每個元素,並把結果作為新的list返回。
有一個list, L = [1,2,3,4,5,6,7,8],我們要將f(x)=x^2作用於這個list上,那麼我們可以使用map函數處理。def test(s): return s**2
for i in map(test,L):
print(i) ---->輸入結果為1,4,9,16,25,36,49,64
sort,對資料進行排序
L = [1,2,-3,4,-5,6,7,5]
L.sort(key=abs)
print(L)---》[1, 2, -3, 4, -5, 5, 6, 7]
divmod,取商和餘數 例如 divmod(100,3)--->(33.1)
enumerate:
- 對於一個可迭代的(iterable)/可遍曆的對象(如列表、字串),enumerate將其組成一個索引序列,利用它可以同時獲得索引和值
- enumerate多用於在for迴圈中得到計數
l = [‘a‘,‘b‘,‘c‘]
for i in enumerate(l):
print(i) ------>(0,‘a‘) (1,‘b‘)(2,‘c‘)
for x,y in enumerate(l):
print(i) ------>0 a
1 b
2 c
說學習內建函數,不如說整理自己的知識體系。其實整理這些內建函數的過程也是在整理自己的知識體系。
我們講課的時候會歸類:常用或者不常用,主要還是根據情境而言。
一個優秀的程式員就應該是在該用這個方法的時候信手拈來,把每一個內建的函數都用的恰到好處。
要想做到這一點,至少要先瞭解,才能在需要的時候想起,進而將它用在該用的地方。
但是在這裡,我還是以自己的一點經驗之談,把幾個平時工作中相對更常用的方法推薦一下,請務必重點掌握:
其他:input,print,type,hash,open,import,dir
str類型代碼執行:eval,exec
數字:bool,int,float,abs,divmod,min,max,sum,round,pow
序列——列表和元組相關的:list和tuple
序列——字串相關的:str,bytes,repr
序列:reversed,slice
資料集合——字典和集合:dict,set,frozenset
資料集合:len,sorted,enumerate,zip,filter,map
Python 內建函數