1. 程式人生 > >python中map()函式,filter()函式

python中map()函式,filter()函式

一、map()是內建的高階函式,用於對變數內每個元素操作,不改變原變數的值,語法如下:

map(function,list)  

其中 function 是你要對 list 中每個元素操作的函式,list 是你要進行操作的可迭代的資料 (例如   列表,字串,)

map() 函式會得到一個新的 list 並返回  

例如:list_1=[1,2,3,4,5]

map(lambda x:x+1,list_1)              返回的是一個Iterator,也就是一個惰性序列,需要用 list() 函式獲得所有元素值

list(map(lambda x:x+1,list_1))        會得到一個新列表 

>>> list_1=[1,2,3,4]
>>> map(lambda x:x+1,list_1)
<map object at 0x000002895EB0C710>
>>> list(map(lambda x:x+1,list_1))
[2, 3, 4, 5]

 二、filter()函式是內建函式,用於過濾序列,不改變原變數的值,語法如下:

filter(function,list)

filter是把傳入的函式 function 依次作用在 list 中每個元素,然後根據返回值是 True 還是 False 判斷是否保留該元素

例如:list_2=['ast','bst','c','dst'] >>> filter(lambda x:x.endswith('st'),list_2)         返回的是一個Iterator

,也就是一個惰性序列,需要用 list() 函式獲得所有元素值 >>> list(filter(lambda x:x.endswith('st'),list_2))

>>> list_2=['ast','bst','c','dst']
>>> filter(lambda x:x.endswith('st'),list_2)
<filter object at 0x0000028EADEFC710>
>>> list(filter(lambda x:x.endswith('st'),list_2))
['ast', 'bst', 'dst']