python 函数中的内置函数及用法详解(二)
11、exec()
exec 语句用来执行储存在字符串或文件中的 Python 语句。
12、eval()
eval() 函数将字符串 str 当成有效的表达式来求值并返回计算结果。
13、divmod(a,b)
divmod(a,b) 方法是计算 a,b 的商和余数,即:a//b 余几,返回结果为元组。以后做网页翻页的时候会。
14、enumerate(iterable,start=0)
返回一个枚举对象。iterable 必须是序列,迭代器,或者其他支持迭代的对象。
15、filter()
对于序列中的元素进行筛选,最终获取符合条件的序列。
像上面这种简单的函数可以使用 lambda 函数来执行:
对于列表中字符串跟数字并存的提取方法:
filter 主要的功能其实就是进行过滤及筛选。在此进行一段插曲。python 中的正则表达式也可以进行过滤跟筛选,主要是面向于字符串的过滤中起到了很好的作用。对于正则表达式打算另起章节具体介绍,在此仅简单列举 1-2 个案例仅供参考。
小插曲(正则表达式筛选案例):
需求 1:取出 s 变量中的 speed 跟 angle。
需求 2:从 s 这个字符串中,把数字跟字符分别提取出来。
需求 3:从 s 这个字符串中,把数字跟字符分别提取出来。
16、map(函数,可迭代的对象)
我们先看 map。map()
函数接收两个参数,一个是函数,一个是序列,map
将传入的函数依次作用到序列的每个元素,并把结果作为新的 list 返回。
举例说明,比如我们有一个函数 f(x)=x2,要把这个函数作用在一个 list [1, 2, 3, 4, 5, 6, 7, 8, 9]
上,就可以用map()
实现如下:
现在,我们用 Python 代码实现:
map()
传入的第一个参数是f
,即函数对象本身。
你可能会想,不需要map()
函数,写一个循环,也可以计算出结果:
的确可以,但是,从上面的循环代码,能一眼看明白“把 f(x) 作用在 list 的每一个元素并把结果生成一个新的 list”吗?
所以,map()
作为高阶函数,事实上它把运算规则抽象了,因此,我们不但可以计算简单的 f(x)=x2,还可以计算任意复杂的函数,比如,把这个 list 所有数字转为字符串:
只需要一行代码 (仅限于 python2 的版本。python3 返回的是个迭代器需要 for 循环出元素)。
map 结合 lambda 表达式案例:
map 结合生成器案例:
17、reduce()
对于序列内所有元素进行累计操作:
18、isinstance()
判断对象是不是类的实例。
19、len()
判断字符串长度。
20、max()、min()、sum()
max():取最大值;min():取最小值;sum():取总的值