filter()函數(shù)
filter()函數(shù):
<code>filter(function or None, sequence) -> list, tuple, or string</code>
filter函數(shù)接受兩個參數(shù)败徊,第一個參數(shù)是一個函數(shù)或None,第二個參數(shù)是一個數(shù)組序列。
當(dāng)?shù)谝粋€參數(shù)為None時恬叹,filter會返回一個迭代器,包含第二個參數(shù)數(shù)組中所有為True的值,例如'True'、'1'甚亭。
如果第一個參數(shù)是一個函數(shù),則會吧第二個序列中的值击胜,依次帶入到函數(shù)亏狰,返回輸出的True值序列。
輸出0到10之間的偶數(shù)偶摔,可以這么寫:
<pre>
print(list(filter(lambda x:(x+1)%2,range(1,11))))
[2,4,6,8,10]
</pre>
刪除一個序列中的空字符串可以這么寫:
<pre>
print list(filter(lambda x:x and x.strip(),['a','s ',' g','w g','r','b','',None]))
['a', 's ', ' g', 'w g', 'r', 'b']
</pre>
map函數(shù)
filter()函數(shù):
<code>filter(function or None, sequence) -> list, tuple, or string</code>
map()是 Python 內(nèi)置的高階函數(shù)暇唾,它接收一個函數(shù) f 和一個 list,并通過把函數(shù) f 依次作用在 list 的每個元素上辰斋,返回一個新的 list 并返回(map()函數(shù)并不會改變原序列)信不。
在編程語言中,map一般指映射
如果我們需要求一個序列的平方值亡呵,可以這樣使用map():
<pre>
print list(map(lambda x:x**2,[1,2,3,4,5,6]))
[1,4,9,16,25,36]
</pre>
如果我們需首字母大寫的一組字符串的,可以這樣使用map():
<pre>
print list(map(lambda x:x.capitalize(),['holase','BILL','john','lUCy']))
['Holase', 'Bill', 'John', 'Lucy']
</pre>