python學習筆記 列表常用的內建函式

2021-08-31 16:01:49 字數 2364 閱讀 1367

對於列表來講,有三個內建函式非常有用: filter(),map() 以及 reduce()。

filter(function, sequence)返回乙個sequence(序列),包括了給定序列中所有呼叫function(item)後返回值為true的元素(如果可能的話,會返回相同的型別)。如果該 序列 (sequence)是乙個str,unicode或者tuple,返回值必定是同一型別,否則,它總是list。例如,以下程式可以計算乙個被 3 或者 5 整除的序列:

>>

>

deff

(x):

return x %3==

0or x %5==

0...

>>

>

filter

(f,range(2

,25))

[3,5

,6,9

,10,12

,15,18

,20,21

,24]

這個方法是用於過濾序列的,即其會過濾傳入的第二個引數,將其中不符合函式f的丟掉,剩下的組成乙個新的list並返回;

map(function, sequence)為每乙個元素依次呼叫 function(item) 並將返回值組成乙個鍊錶返回,這個和filter不同之處在於,filter是過濾,而map方法是計算,將引數sequence裡的每乙個元素作為引數傳入fuction中,並將fuction返回的結果組成乙個list並返回,範例如下:

>>

>

defcube

(x):

return x*x*x..

.>>

>

map(cube,

range(1

,11))

[1,8

,27,64

,125

,216

,343

,512

,729

,1000

]

這裡可以有多個序列傳入,即如果fuction有多個引數要傳的話,是需要傳遞多個sequence的,例如:

>>

> seq =

range(8

)>>

>

defadd

(x, y)

:return x+y..

.>>

>

map(add, seq, seq)[0

,2,4

,6,8

,10,12

,14]

reduce(function, sequence)返回乙個單值,它是這樣構造的:首先以序列的前兩個元素呼叫函式function,再以返回值和第三個引數呼叫,依次執行下去。

這個方法和map方法有相似的地方在於都是將sequence作為引數傳入fuction

例如,以下程式計算 1 到 10 的整數之和:

>>

>

defadd

(x,y)

:return x+y..

.>>

>

reduce

(add,

range(1

,11))

55

如果序列中只有乙個元素,就返回它,如果序列是空的,就丟擲乙個異常。

可以傳入第三個引數作為初始值。如果序列是空的,就返回初始值,否則函式會先接收初始值和序列的第乙個元素,然後是返回值和下乙個元素,依此類推。例如:

>>

>

defsum

(seq):.

..defadd

(x,y)

:return x+y..

.return

reduce

(add, seq,0)

...>>

>

sum(

range(1

,11))

55>>

>

sum(

)0

Python 列表 學習筆記

序列是python中基本資料結構。序列中每個元素都分配到乙個數字 它的位置或索引值 第一位索引值是0,第二位是1,以此類推。python有6個序列的內建型別,但最常見的是列表和元組。序列都可以進行的操作包括索引,切片,加,乘,檢查成員。此外,python已經內建確定序列的長度以及確定最大和最小的元素...

Python學習筆記 列表

今天學習了head first python 中文版 這本書的第1章 人人都愛列表,很有意思。好,為了珍惜時間,下邊開始乾巴巴的筆記 1.檢視python版本 1 python v 大寫 檢視python2版本 2 python3 v 3 python3 v 使用小寫v會進入python直譯器,py...

python學習筆記 列表

1 列表 words hello world print words 0 print words 1 print words 2 大多數情況下,列表中的最後一項不會帶逗號。然而,在那裡放置乙個是完全有效的,在某些情況下是鼓勵的。2 列表也可以巢狀在其他列表中。things string 0,1,2,...