1. 程式人生 > 實用技巧 >python內建函式(二)序列相關

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
>>>