Python 中有许多非常实用的内置函数,通过这些函数我们可以方便的实现某些功能,下面就列举一些常用的内置函数。
1. map() 函数
map() 可以根据提供的函数对指定序列做映射,它接受一个函数f和一个 list ,并通过把函数 f 以此作用在 list 上的每个元素,然后返回一个新的 list,map 函数的入参也可以是多个。注意这个函数一定要有返回值(值值值重要的说三遍)。
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() 函数
zip() 函数接受任意多个(包括 0 个和 1 个)序列作为参数,返回一个 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}
这个函数可以方便的将两个序列结合起来,然后再调用 for 循环语句,在实际项目中有很大的用处。
3. filter() 函数
filter() 函数接受一个函数 f 和一个 list,这个函数 f 的作用是对每个元素进行判断,返回 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() 函数
reduce() 函数的用法和 map 很类似,也是一个函数 f 和一个 list,但是函数的入口参数一定要是两个,reduce() 也是对每个元素进行反复调用,最后返回最终的值,而 map 是返回一个 list。
In [17]: def add(x,y):
....: return x + y
....:
In [18]: reduce(add, [1,2,3,4,5])
Out[18]: 15
注意在python3里面 reduce()已经从全局函数里面移除了,需要用的话要from functools import reduce。
5. enumerate() 函数
同时获取迭代列表的索引和值。
In [30]: a = ['a','b','c']
In [31]: for i, v in enumerate(a):
....: print i, v
....:
0 a
1 b
2 c
待续