python內建函式(二)序列相關
序列(容器):指的是一塊可存放多個值的連續記憶體空間
包括,字串、列表、元組、字典、集合等
len(x) 返回序列的長度
max(x) 返回序列的最大值元素
min(x) 返回序列的最小值元素
sum(x) 返回序列中所有元素的和(元素必須是數值型別)
any(x) 真值測試,如果列表中其中一個值為真值則返回True
all(x) 真值測試,如果列表中所有值為真值則返回True
1、len(obj)
引數:obj,必選,為一個序列(容器)
作用:求序列的長度,即序列中的元素數量
返回值:返回序列的長度
2、max()
找出序列中的最大元素。注意,對序列使用 sum() 函式時,做加和操作的必須都是數字,不能是字元或字串,否則該函式將丟擲異常,因為直譯器無法判定是要做連線操作(+ 運算子可以連線兩個序列),還是做加和操作。
引數:不能為空。有一個引數時,引數必須為可迭代物件,則返回序列的最大值。若為多個引數(引數型別要統一,否則會報錯)則返回最大引數
作用:求序列或多個引數的最大值
返回值:返回序列的最大值,或多個引數的最大值
In [160]: max([1,2,3],12,"asd") --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-160-12f6f3666cb7> in<module> ----> 1 max([1,2,3],12,"asd") TypeError: '>' not supported between instances of 'int' and 'list' In [161]: max("[1,2,3]","12","asd") Out[161]: 'asd'
3、min()
和max()相反
4、sum(iterable, start=0)
此函式專門用於數值,對數值序列(列表、元組、集合、字典)求和 。字典只針對鍵而言。字串不能使用此函式。
引數:至少要有一個引數,最多兩個引數。為一個引數時必須為數值序列(可迭代物件,序列元素只能是數字),對其求和
為兩個引數時,第一個為數值序列,第二個為數字
返回值:返回數值序列的求和結果
In [173]: sum([1,2,3,4,5],0) Out[173]: 15 In [174]: sum([1,2,3,4,5],3) Out[174]: 18 In [175]: sum("12345") --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-175-ee9980c8d02f> in <module> ----> 1 sum("12345") TypeError: unsupported operand type(s) for +: 'int' and 'str' In [176]: sum((1,2,3,4,5)) Out[176]: 15 In [177]: sum({1,2,3,4,5}) Out[177]: 15 In [178]: sum({1:"12",2:"we",3:"sd",4:"sda",5:"dc"}) Out[178]: 15 In [179]: sum((1,2,3,4,5),10) Out[179]: 25 In [180]: sum((1,2,3,4,5),10,1) --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-180-415b51c7ecdc> in <module> ----> 1 sum((1,2,3,4,5),10,1) TypeError: sum expected at most 2 arguments, got 3
5、str()
字串建構函式
可以將序列轉換為字串
引數可為空,為空時,生成一個空字串
In [209]: str([1,2,3]) Out[209]: '[1, 2, 3]' In [210]: str((1,2,3)) Out[210]: '(1, 2, 3)' In [211]: str({1,2,3}) Out[211]: '{1, 2, 3}' In [212]: str({1:"dw",2:"sdad",3:"sd"}) Out[212]: "{1: 'dw', 2: 'sdad', 3: 'sd'}" In [213]: str() Out[213]: ''
6、list()
可以將序列轉換為列表
引數可為空,為空時,生成一個空列表
In [214]: list((1,2,3)) Out[214]: [1, 2, 3] In [215]: list({1,2,3}) Out[215]: [1, 2, 3] In [216]: list({1:"dw",2:"sdad",3:"sd"}) Out[216]: [1, 2, 3] In [217]: list("123") Out[217]: ['1', '2', '3'] In [218]: list() Out[218]: []
7、sorted(iterable, key=None, reverse=False)
引數:至少一個,iterable。
作用:對iterable進行排序,預設升序,即預設reverse=False。可以指定排序規則,即根據什麼排序,key
返回值:返回一個新列表,新列表是對於iterable的排序結果
>>> l [1, 2, 5, 4, 3] >>> sorted(l) [1, 2, 3, 4, 5] >>> l [1, 2, 5, 4, 3] >>> s="12765" >>> sorted(s) ['1', '2', '5', '6', '7'] >>> sorted() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: Required argument 'iterable' (pos 1) not found >>>
8、reversed(sequence)
引數:必選,且必須是序列
作用:返回反向順序的序列
返回值:是一個物件,原來sequence的反向,可用for迴圈訪問。
9、enumerate()
將序列組合為一個索引序列,多用在for迴圈中
10、range()
也叫整數序列生成器。生成一個可迭代物件(整數序列)
引數:至少一個,最多3個
range(stop) 從零開始,每次生成一個整數後加1操作,直到stop為止(不包含stop)
range(start, stop[, step]) 從 start開始,每次生成一個整數後移動step,直到stop為止
(不包含stop,且step可以是負數。step預設是1,。step若為正數,start小於stop。step若為負,start大於stop)
常和for語句結合使用。
>>> for i in range(5,10,-1): #錯誤 ... print(i) ... >>> for i in range(10,6,-1): ... print(i) ... 10 9 8 7 >>> for i in range(10,6):#錯誤 ... print(i) ... >>> for i in range(6,10): ... print(i) ... 6 7 8 9 >>>