PYTHON學習0030:函數---內置方法----2019-6-23

PYTHON學習0030:函數---內置方法----2019-6-23
.
1、abs():取絕對值。舉例:
print "abs(-45) : ", abs(-45)
輸出結果爲:
abs(-45) : 45
2、dict():吧一個數據轉成字典。
3、min()從一個列表裏取最小值。max()從列表裏取出最大值。
4、all()用於判斷給定的可迭代參數 iterable 中的所有元素是否都爲 TRUE,如果是返回 True,否則返回 False。
元素除了是 0、空、None、False 外都算 True。
5、bool():只能接收一個參數,用於將給定參數轉換爲布爾類型,如果參數是 0、空、None、False,返回 False。bool 是 int 的子類。
6、any():函數用於判斷給定的可迭代參數 iterable 是否全部爲 False,全部是則返回 False,如果有一個爲 True,則返回 True。
元素除了是 0、空、FALSE 外都算 TRUE。
7、dir():函數不帶參數時,返回當前範圍內的變量、方法和定義的類型列表;帶參數時,返回參數的屬性、方法。
如果參數包含方法dir(),該方法將被調用。如果參數不包含dir(),該方法將最大限度地收集參數信息。
8、hex():函數用於將10進制整數轉換成16進制,以字符串形式表示。
9、slice():函數實現切片對象,主要用在切片操作函數裏的參數傳遞。
slice 語法:
class slice(stop)
class slice(start, stop[, step])
參數說明:start -- 起始位置;stop -- 結束位置;step -- 間距
返回值:
返回一個切片對象。

實例
以下實例展示了 slice 的使用方法:

myslice = slice(5) # 設置截取5個元素的切片
myslice
slice(None, 5, None)
arr = range(10)
arr
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
arr[myslice] # 截取 5 個元素
[0, 1, 2, 3, 4]

10、divmod()接收2個數字,把除數和餘數運算結果結合起來,返回一個包含商和餘數的元組(a // b, a % b)。
11、sorted():函數對所有可迭代的對象進行排序操作。

sort 與 sorted 區別:

sort 是應用在 list 上的方法,sorted 可以對所有可迭代的對象進行排序操作。

list 的 sort 方法返回的是對已經存在的列表進行操作,無返回值,而內建函數 sorted 方法返回的是一個新的 list,而不是在原來的基礎上進行的操作。
語法
sorted 語法:

sorted(iterable, key=None, reverse=False)
參數說明:

iterable -- 可迭代對象。
key -- 主要是用來進行比較的元素,只有一個參數,具體的函數的參數就是取自於可迭代對象中,指定可迭代對象中的一個元素來進行排序。
reverse -- 排序規則,reverse = True 降序 , reverse = False 升序(默認)。
返回值:
返回重新排序的列表。

實例
以下實例展示了 sorted 的最簡單的使用方法:

sorted([5, 2, 3, 1, 4])
[1, 2, 3, 4, 5] # 默認爲升序
你也可以使用 list 的 list.sort() 方法。這個方法會修改原始的 list(返回值爲None)。通常這個方法不如sorted()方便-如果你不需要原始的 list,list.sort()方法效率會稍微高一些。

a=[5,2,3,1,4]
a.sort()
a
[1,2,3,4,5]
另一個區別在於list.sort() 方法只爲 list 定義。而 sorted() 函數可以接收任何的 iterable。

sorted({1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'})
[1, 2, 3, 4, 5]
利用key進行倒序排序

example_list = [5, 0, 6, 1, 2, 7, 3, 4]
result_list = sorted(example_list, key=lambda x: x*-1)
print(result_list)
[7, 6, 5, 4, 3, 2, 1, 0]

要進行反向排序,也通過傳入第三個參數 reverse=True:

example_list = [5, 0, 6, 1, 2, 7, 3, 4]
sorted(example_list, reverse=True)
[7, 6, 5, 4, 3, 2, 1, 0]

12、eval():用來執行一個字符串表達式,並返回表達式的值。只能處理單行代碼。
13、exec():用來執行一個字符串表達式,但不返回表達式的值。能處理多行代碼
比如以下代碼:
code='''
def foo():
print("run foo")
return 1234

foo()
'''

exec(code)
res=exec(code)
print(res)
輸出結果爲:
run foo
run foo
None
也就是exec函數可以執行括號裏的表達式,但是沒有返回值,或者返回None。
又如:
res=eval("1+3+3")
print(res)

res=exec("1+3+3")
print(res)

輸出結果爲:
7
None
14、ord():它以一個字符(長度爲1的字符串)作爲參數,返回對應的 ASCII 數值,或者 Unicode 數值,如果所給的 Unicode 字符超出了你的 Python 定義範圍,則會引發一個 TypeError 的異常。

ord('a')
97
ord('b')
98
ord('c')
99
15、chr():返回當前接收整數的對應的 ASCII 字符。
chr(97)
'a'

16、sum():求和函數。
17、bytearray():一般來講字符串裏的元素是不能被修改的,但本函數可以通過先吧字符串轉變爲utf-8字符集,再修改,以達到修改字符串的目的。這個是在內存地址層面的修改,也就是內存地址沒有變,不是重新賦值。
17、map(): 會根據提供的函數對指定序列做映射。
第一個參數 function 以參數序列中的每一個元素調用 function 函數,返回包含每次 function 函數返回值的新列表。
實例:
以下實例展示了 map() 的使用方法:

def square(x) : # 計算平方數
... return x 2
...
map(square, [1,2,3,4,5]) # 計算列表各個元素的平方
[1, 4, 9, 16, 25]
map(lambda x: x
2, [1, 2, 3, 4, 5]) # 使用 lambda 匿名函數
[1, 4, 9, 16, 25]

提供了兩個列表,對相同位置的列表數據進行相加

map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
[3, 7, 11, 15, 19]
18、filter():函數用於過濾序列,過濾掉不符合條件的元素,返回一個迭代器對象,如果要轉換爲列表,可以使用 list() 來轉換。

該接收兩個參數,第一個爲函數,第二個爲序列,序列的每個元素作爲參數傳遞給函數進行判,然後返回 True 或 False,最後將返回 True 的元素放到新列表中。
以下展示了使用 filter 函數的實例:

過濾出列表中的所有奇數:

def is_odd(n):
return n % 2 == 1

tmplist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
newlist = list(tmplist)
print(newlist)
輸出結果 :

[1, 3, 5, 7, 9]

用法和map()函數差不多。
19、reduce():reduce把一個函數作用在一個序列[x1, x2, x3, ...]上,這個函數必須接收兩個參數,reduce把結果繼續和序列的下一個元素做累積計算,其效果就是:

reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
比方說對一個序列求和,就可以用reduce實現:

from functools import reduce
def add(x, y):
... return x + y
...
reduce(add, [1, 3, 5, 7, 9])
25
當然求和運算可以直接用Python內建函數sum(),沒必要動用reduce。

但是如果要把序列[1, 3, 5, 7, 9]裏的元素相乘,reduce就可以派上用場:
from functools import reduce
def fn(x, y):
return x * y

res=reduce(fn, [1, 3, 5, 7, 9])
print(res)
輸出爲945。

20、pow():求數字的冪數。
pow(8,3)=512。
21、callable():判斷一個對象是否可調用。函數可以調用字符串,列表,元祖,字典,集合等不可調用。
22、vars():打印當前所有變量名及其對應值。
23、locals():以字典類型返回當前位置的全部局部變量。一般在函數內運行。
24、globals():返回全部全局變量。
25、zip():函數用於將可迭代的對象作爲參數,將對象中對應的元素打包成一個個元組,然後返回由這些元組組成的列表。

如果各個迭代器的元素個數不一致,則返回列表長度與最短的對象相同,利用 * 號操作符,可以將元組解壓爲列表。
以下實例展示了 zip 的使用方法:

a = [1,2,3]
b = [4,5,6]
c = [4,5,6,7,8]
zipped = zip(a,b) # 打包爲元組的列表
[(1, 4), (2, 5), (3, 6)]
zip(a,c) # 元素個數與最短的列表一致
[(1, 4), (2, 5), (3, 6)]
zip(zipped) # 與 zip 相反,zipped 可理解爲解壓,返回二維矩陣式
[(1, 2, 3), (4, 5, 6)]
26、round():吧一個數字返回保留指定小數的數字。
round(1.2345345345,5)=1.23453
27、hash():吧一個字符串按照哈希規則變成數字。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章