內置函數與匿名函數

內置函數
1、基礎數據類型
一、和數字相關
(1)、數字類型 :{
int: 整型,
bool: 布爾型,
float: 浮點型,
complex: 負數}
(2)、進制轉換 {
bin: 二進制,
oct: 八進制,
hex: 十六進制
}
(3)、數學運算{
abs: 絕對值,
divmod: 返回商餘,
round: 小數精確(默認到整數,也能夠標記精確幾位),
pow: 冪運算,
sum: 求和,
min: 計算最小值(能夠傳函數進來,也能夠計算可迭代對象),
max: 計算最大值(與min方法一直)
}
二、和數據結構相關
(1)、序列{
列表和元組:{list:轉化爲列表,tuple:轉化爲元組},
相關內置函數:{reversed:參數是序列,返回值是反向迭代器,slice:切片},
字符串:{
str: 字符串,
format: 格式化輸出(並不單單是格式化,還有format_spec功能),
bytes: 轉化爲bytes類型,
bytearray: 返回一個新的字節數組,
memoryview: 返回給定參數的內存查看對象,
ord: 字符按照unicode轉數字
chr: 數字按照unicode轉字符
ascii: 字符串轉ascii,
repr: 用於%r格式化輸出
}
(2)、數據集合{
dict: 字典,
set: 集合,
frozenset: 返回一個凍結的集合,凍結後集合不能再添加或刪除任何元素
}
(3)、相關內置函數{
len: 返回一個可迭代對象元素的長度,
enumerate: 函數用於將一個可遍歷的數據對象(如列表、元組或字符串)組合爲一個索引序列,\
同時列出數據和數據下標,通常用在 for 循環當中,
all: 判斷是否有bool值爲 False 的值,
any: 判斷是否有bool值爲 True 的值,
zip: 返回 一個迭代器
filter: 接收一個函數f和一個列表list,,這個函數f的做用是對列表裏每一個元素\
進行判斷,返回Ture或者False,filter根據結果自動過濾掉不符合條件的元素,返回\
返回符合的元素組成新的列表,
map: 函數應用於每個可迭代的項,返回的是一個結果list。若是有其餘的可迭代參數傳進來
map函數則會把每個參數都以相應的處理函數進行迭代處理。map()函數接收兩個參數,一個是函數,\
一個是序列,map將傳入的函數依次做用到序列的每一個元素,並把結果做爲新的list返回,
sorted: 對list、Dict進行排序,返回副本,原始輸入不變(參數說明:iterable:可迭代對象;key: \
傳入一個函數名,函數的參數是可迭代對象中的每一項,根據函數的返回值大小排序;reverse:排序規則 \
reverse=Ture降序,reverse=False升序,有默認值;返回值:有序列表)
}
三、做用域相關{
locals:以字典類型返回當前位置的所有局部變量,
globals:以字典類型返回當前位置的所有全局變量
}
四、迭代器\生成器相關{
range:函數可建立一個整數列表,通常用在 for 循環中,
next:返回迭代器的下一個項目,
iter:用來生成迭代器
}
五、其餘{
(1)、字符串類型代碼的執行{
evel:用來執行一個字符串表達式,並返回表達式的值
exec:用來執行一個字符串表達式,無返回值
complie: 編碼
}
(2)、輸入輸出{
input: 輸入,
print: 輸出,
}
(3)、內存相關{
hash: 用於獲取取一個對象(字符串或者數值等)的哈希值,
id: 函數用於獲取對象的內存地址
}
(4)、文件操做相關{open:於打開一個文件,建立一個 file 對象,相關的方法才能夠調用它進行讀寫}
(5)、模塊相關{__import__:用於動態加載類和函數}
(6)、幫助{help:進入help模式,指定查看某對象的幫助信息}
(7)、調用相關:{callable:返回True或者False}
(8)、查看內置屬性{dir: 查看全部的內置函數(dir(__builtins__)),查看對\
某對象的屬性及方法}
}
六、面向對象{
pass #先欠着,還沒學到,到時候補充 }
七、反射{}
}

匿名函數
匿名函數:爲了解決那些功能很簡單的需求而設計的一句話函數
#這段代碼
def calc(n):
    return n**n
print(calc(10))
 
#換成匿名函數
calc = lambda n:n**n
print(calc(10))

 格式說明python

函數名 = lambda 參數 :返回值
#參數能夠有多個,用逗號隔開
#匿名函數無論邏輯多複雜,只能寫一行,且邏輯執行結束後的內容就是返回值
#返回值和正常的函數同樣能夠是任意數據類型

l=[3,2,100,999,213,1111,31121,333]
print(max(l))

dic={'k1':10,'k2':100,'k3':30}


print(max(dic))
print(dic[max(dic,key=lambda k:dic[k])])

  

res = map(lambda x:x**2,[1,5,7,4,8])
for i in res:
    print(i)

輸出
25
16

  

res = filter(lambda x:x>10,[5,8,11,9,15])
for i in res:
    print(i)

輸出
15

  練習數組

現有兩個元組(('a'),('b')),(('c'),('d')),請使用python中匿名函數生成列表[{'a':'c'},{'b':'d'}]

#答案一
test = lambda t1,t2 :[{i:j} for i,j in zip(t1,t2)]
print(test(t1,t2))
#答案二
print(list(map(lambda t:{t[0]:t[1]},zip(t1,t2))))
#還能夠這樣寫
print([{i:j} for i,j in zip(t1,t2)])
練習
1.下面程序的輸出結果是:
d = lambda p:p*2
t = lambda p:p*3
x = 2
x = d(x)
x = t(x)
x = d(x)
print x

2.現有兩元組(('a'),('b')),(('c'),('d')),請使用python中匿名函數生成列表[{'a':'c'},{'b':'d'}]

3.如下代碼的輸出是什麼?請給出答案並解釋。
def multipliers():
    return [lambda x:i*x for i in range(4)]
print([m(2) for m in multipliers()])
請修改multipliers的定義來產生指望的結果。

練習

 內置函數掌握數據結構

 

其餘:input,print,type,hash,open,import,diride

 

str類型代碼執行:eval,exec函數

 

數字:bool,int,float,abs,divmod,min,max,sum,round,powui

 

序列——列表和元組相關的:list和tuple編碼

 

序列——字符串相關的:str,bytes,reprspa

 

序列:reversed,slice設計

 

數據集合——字典和集合:dict,set,frozensetcode

 

數據集合:len,sorted,enumerate,zip,filter,map

相關文章
相關標籤/搜索