python基礎學習第六天
6.1內置函數
6.1.1 filter函數
6.1.2 map函數
6.1.3 reduce函數
6.1.1:filter (函數名字, 序列) 過濾器對象
filter()函數是 Python 內置的另一個有用的高階函數,filter()函數接收一個函數 f 和一個list,這個函數 f 的作用是對每個元素進行判斷,返回 True或 False,filter()根據判斷結果自動過濾掉不符合條件的元素,返回由符合條件元素組成的新list
# 過濾列表中名稱是xiong的字符串
name=["xiong","yuan"] def fi(n): if n!="xiong": return n let=filter(fi,name) print(list(let)) # 結果 [‘yuan‘]
# 再比如過濾掉數字為奇數的行
def number(n): if n %2 ==1: return n jnum=filter(number,range(1,20)) # 過濾對象內存地址:<filter object at 0x000000000250F828> print(list(jnum)) # 打印結果就是:[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
6.1.2 map (函數名字, 序列)
map()是 Python 內置的高階函數,它接收一個函數 f 和一個 list,並通過把函數 f 依次作用在 list 的每個元素上,得到一個新的 list 並返回。
map()函數是python內置的高階函數,對傳入的list的每一個元素進行映射,返回一個新的映射之後的list
def x(f): return f*f #從9開始每次相乘 num=map(x,range(9)) print(list(num)) 0 1 2 3 4 5 6 7 8 每個值都乖以自己
# 結果: 等於就是每個值的平方 [0, 1, 4, 9, 16, 25, 36, 49, 64]
註意:map()函數不改變原有的 list,而是返回一個新的 list。
由於list包含的元素可以是任何類型,因此,map() 不僅僅可以處理只包含數值的 list,事實上它可以處理包含任意類型的 list,只要傳入的函數f可以處理這種數據類型。
x=["ali","jic","you"] def name(x): return "a" + x na=map(name,x) # 跟filter差不多,但如果將map改為filter那麽它返回的結果就是ali,jic,you print(list(na)) # 結果: [‘aali‘, ‘ajic‘, ‘ayou‘]
# 擴展信息: http://www.cnblogs.com/superxuezhazha/p/5714970.html
6.1.3 reduce(函數,對象或序列)
reduce() # 想用這個方法必須加上如下參數 reduce的結果就是一個值
from functools import reduce lambda a,b: a + b ## 示例 先調用這個函數 from functools import reduce # add = lambda a,b: a+b # print(add(1,2)) # 結果3 def add1(x,y): return x + y print(reduce(add1,range(10))) # 結果45
本文出自 “xiong” 博客,請務必保留此出處http://xiong51.blog.51cto.com/5239058/1965681
python基礎學習第六天