1. 程式人生 > >Python 常用內置函數粗略總結

Python 常用內置函數粗略總結

class *args color getattr 切片 浮點數 __call__ 不一定 data

先來對比一下filter、map、sorted、reduce
 map(func, iterable) 返回返回值組成的叠代器
filter(func, iterable) 返回符合條件的元素組成的叠代器
sorted(seq, key) 返回排序後的列表
reduce(function, iterable[, initializer]) 返回一個計算結果
額外來一個functools模塊中的reduce函數 reduce(function, iterable[, initializer])   對參數序列中的元素進行累積   function接收兩個參數,先對iterable的前兩個元素進行處理,返回值當做下一次處理的第一個參數,與iterable的第三個元素作為第二個參數一同傳給function,以此類推
reduce(lambda
x, y: x+y, [1, 2, 3, 4, 5]) # 等價於這個算式((((1+2)+3)+4)+5).
  ps.initializer參數會排在iterable的元素之前進入計算,並且,當iterable為空時,作為默認值返回出去;若不提供初始化參數,且iterable只有一個元素,那麽reduce會返回這個唯一元素
abs(digit)   返回數字的絕對值,參數可以是整數、浮點數、復數。 all(iterable)   判斷容器內的元素是不是都為真,都真則返回真 any(iterable)   判斷容器內是不是至少有一個真,有則返回真 ascii(obj)   參數如果在ascii範圍內,則返回表示對象的字符串,否則,調用repr() 函數返回對象的16進制形式。 bin(int)   返回一個整型的二進制表示 bool(obj)   類型轉換,可用來判斷參數的真假,空參數會返回False bytearray()   返回一個字節數組,返回值可索引切片,索引切片會得到對應的ascii碼 bytes(source[, encoding[, errors]]])   返回一個新的bytes對象,是一個 0 <= x < 256 區間內的整數不可變序列
  • 如果 source 為字符串,則按照指定的 encoding 將字符串轉換為字節序列;
  • 如果 source 為可叠代類型,則元素必須為[0 ,255] 中的整數;
callable(obj)   檢測對象是否可調用,可則返回真   對於函數、方法、lambda 函式、 類以及實現了 __call__ 方法的類實例, 它都返回 True。   但返回True,對象並不一定能被成功調用,返回False,對象一定不能被調用。 chr(integer)   參數可以使十進制或十六進制,返回參數ascii號碼對應的字符   ps.65-A,90-Z,97-a,122-z classmethod() 略 compile() 略 complex()   復數 delattr() dict()   可創建字典對象 dir(obj)   不傳參的話,返回當前命名空間內的名字列表。   查看對象支持的方法 divmod(digit1,digit2)   返回一個元祖,第一個元素是商,第二個是余數   參數為整型時,函數等價於(a // b, a % b)。 enumerate(iterable, start=0)   返回一個枚舉對象,第二個參數可指定計數器的開始位置   內部的__next__()返回元祖,第一個元素是計數器,第二個元素是叠代對象內的元素。
for
i,em in enumerate([1,2,3], 1): print(i,em) # 輸出 # 1 1 # 2 2 # 3 3 # 枚舉函數等價於以下實現: def enumerate(sequence, start=0): n = start for elem in sequence: yield n, elem n += 1
eval(expression, globals=None, locals=None)   執行字符串內的簡單語句,避免使用這個方法
>>> x = 1
>>> eval(‘x+1‘)
2
exec()   代碼註入,升級版eval filter(function, iterable)   返回一個叠代器,元素是參數iterable中被參數function返回True的元素。   若函數是空的,則會叠代第二個參數中所有邏輯為真的元素
filter(function, iterable)
# 等價於以下的生成器推導式
(item for item in iterable if function(item))
# function是None時
(item for item in iterable if item)
float()   浮點型 format()   格式化輸出,第二個參數可設置格式 frozenset()   凍結集合 getattr()   返回對象的屬性 globals()   返回當前空間內的全局對象 hasattr() hash(obj)   返回不可變對象的哈希值,哈希值本身是整形數據, help([obj])   內建的幫助系統 hex(decimal)   把十進制轉化成十六進制,以字符串形式表示 id(obj)   返回對象的內存地址 input() int(x, base=10)   返回整型,默認轉為十進制 isinstance(obj, classinfo)   判斷一個對象是否是一個已知的類型 issubclass() iter(obj[, sentinel])   返回叠代器   1.如果沒給出第二個參數,那麽obj必須符合叠代器協議或序列協議(包含__iter__()方法和__getitem()方法);   2.如果給出第二個參數,那麽obj必須是一個可調用對象,並且,會在叠代到obj的返回值與第二個參數相等時,拋出StopIteration。   如下,可用於想讀取文件到確定的某一行的情況
# 叠代器會自動調用readline方法,並把返回值與‘讀到這裏‘進行對比
with open(data) as file:
    for line in iter(file.readline, 讀到這裏)
        process_line(line)
len()   返回對象的長度 list() locals() map(function,iterable,...)   返回叠代器,用function叠代處理iterable的每一個元素,生成結果並返回 max(iterable, *[,key, default])   可以通過提供default參數,當iterable為空時,max返回默認值,避免報錯。 max(arg1, arg2, *args[, key])   參數接收一個可叠代對象或兩個以上的參數 memoryview() min() next(iterator[, default])   可提供default參數,當叠代器exhausted時,返回默認值,避免StopIteration的異常 object() oct(x)   轉換成八進制,返回八進制的字符串數據,以Oo填充空位, open()   打開文件 ord(c)   返回ascii碼,是chr()的逆操作。 pow(x, y[, z])   冪函數
pow(x, y)等價於x**y
pow(x, y, z)效果等於pow(x, y) % z,但比後者計算效率高
print()   可通過file參數直接打印到文件 property() range() repr(obj)   返回表示對象的str,將對象轉化為供解釋器讀取的形式,也稱全精度數據。 reversed(seq)   翻轉,返回翻轉後的對應叠代器。參數seq必須是支持__reversed__()的對象,或遵循序列協議(包含__len__()方法和__getitem__()方法) round(number[, ndigits])   四舍五入,傾向於返回偶數,例如1.5-->2,-0.5-->0   可指定要保留的小數點後的位數 set([iterable]) setattr() slice([start,] stop[, step])   返回切片類型的對象,可用於切片操作函數裏的參數傳遞。作用是存儲一種切片方式,可以直接寫在下標操作符裏。 sorted(iterable, * , key=None, reverse=False)   返回由排序後的iterable的元素組成的新列表。   key接收一個單參數的函數,該函數接收來自於iterable的元素作為參數。   key用於指定排序依據,主要用於以下應用場景
lis = [(d, 4), (p, 2), (m, 1), (l, 3)]
print(sorted(lis, lambda x:x[1]))
# 輸出結果:[(‘m‘, 1), (‘p‘, 2), (‘l‘, 3), (‘d‘, 4)]
  ps.內建函數sorted()是穩定的,當一個排序可以保證不會改變相等元素的相對位置時被稱為是穩定的。這個特點在多因素排序當中很有用。 staticmethod() str(object=b‘‘, encoding=‘utf-8‘, errors=‘strict‘) sum(iterable[, start])   默認從第一個元素開始累加   ps.處理浮點數,推薦使用math模塊中的math.fsum()方法 super()   用於調用父類(超類)的一個方法 tuple([iterable]) type() vars([obj])   返回對象的__dict__屬性   空參數時,vars()類似於locals() zip(*iterables)   拉鏈   返回一個元祖的叠代器,元祖的元素來自於zip的參數中可叠代對象的相同位置,元祖個數為參數中元素數最少的對象的元素數
>>> x = [1, 2, 3]
>>> y = [4, 5, 6]
>>> zipped = zip(x, y)
>>> list(zipped)
[(1, 4), (2, 5), (3, 6)]
>>> x2, y2 = zip(*zip(x, y))
>>> x == list(x2) and y == list(y2)
True
__import__()   __import__() 函數用於動態加載類和函數 。   如果一個模塊經常變化就可以使用 __import__() 來動態載入。

Python 常用內置函數粗略總結