Python 常用内置函数map、zip、filter、reduce、enumerate
Python 中有許多非常實(shí)用的內(nèi)置函數(shù),通過這些函數(shù)我們可以方便的實(shí)現(xiàn)某些功能,下面就列舉一些常用的內(nèi)置函數(shù)。
1. map() 函數(shù)
map() 可以根據(jù)提供的函數(shù)對(duì)指定序列做映射,它接受一個(gè)函數(shù)f和一個(gè) list ,并通過把函數(shù) f 以此作用在 list 上的每個(gè)元素,然后返回一個(gè)新的 list,map 函數(shù)的入?yún)⒁部梢允嵌鄠€(gè)。注意這個(gè)函數(shù)一定要有返回值(值值值重要的說三遍)。
In [32]: def fun(x):....: return x*x....: In [34]: map(fun, [1,2,3,4,5])Out[34]: [1, 4, 9, 16, 25]In [35]: def add(x, y):....: return x+y....: In [36]: map(add,[1,2,3,4],[5,6,7,8])Out[36]: [6, 8, 10, 12]
2. zip() 函數(shù)
zip() 函數(shù)接受任意多個(gè)(包括 0 個(gè)和 1 個(gè))序列作為參數(shù),返回一個(gè) tuple 列表。
In [21]: x = [1,2,3]In [22]: y = [4,5,6]In [23]: z = [7,8,9]In [24]: zip(x,y,z)
Out[24]: [(1, 4, 7), (2, 5, 8), (3, 6, 9)]In [25]: a = ['a','b','c']In [26]: b = [1,2,3]In [27]: zip(a,b)
Out[27]: [('a', 1), ('b', 2), ('c', 3)]In [28]: dict(zip(a,b))
Out[28]: {'a': 1, 'b': 2, 'c': 3}
這個(gè)函數(shù)可以方便的將兩個(gè)序列結(jié)合起來,然后再調(diào)用 for 循環(huán)語句,在實(shí)際項(xiàng)目中有很大的用處。
3. filter() 函數(shù)
filter() 函數(shù)接受一個(gè)函數(shù) f 和一個(gè) list,這個(gè)函數(shù) f 的作用是對(duì)每個(gè)元素進(jìn)行判斷,返回 True 或者False,這樣可以過濾掉一些不符合條件的元素,然后返回符合條件的 list。
In [19]: def is_even(x):....: return x%2==0....: In [20]: filter(is_even, [1,2,3,4,5])Out[20]: [2, 4]
4. reduce() 函數(shù)
reduce() 函數(shù)的用法和 map 很類似,也是一個(gè)函數(shù) f 和一個(gè) list,但是函數(shù)的入口參數(shù)一定要是兩個(gè),reduce() 也是對(duì)每個(gè)元素進(jìn)行反復(fù)調(diào)用,最后返回最終的值,而 map 是返回一個(gè) list。
In [17]: def add(x,y):....: return x + y....: In [18]: reduce(add, [1,2,3,4,5])Out[18]: 15
注意在python3里面 reduce()已經(jīng)從全局函數(shù)里面移除了,需要用的話要from functools import reduce。
5. enumerate() 函數(shù)
同時(shí)獲取迭代列表的索引和值。
In [30]: a = ['a','b','c']In [31]: for i, v in enumerate(a):....: print i, v....: 0 a1 b2 c
? 待續(xù)
總結(jié)
以上是生活随笔為你收集整理的Python 常用内置函数map、zip、filter、reduce、enumerate的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 标准库之 time
- 下一篇: Python2 与 Python3 区别