python内置函数

2022-09-05 17:44:55 浏览数 (1)

Python很贴心地将一些常用的功能设置成了内置函数。 这些函数无须从模块中导入,也无须定义就可以在任意位置直接调用。 除了平时我们会用到的一些求字符串长度的简单内置函数,python还给提供了几种相对高级一点的内置函数。善用这些给出的内置函数能够使得代码更加简洁!

lambda函数

lambda函数是用来快速创建一个自定义匿名函数的,省去了平时需要用到的def 结构,例如:

代码语言:javascript复制
f=lambda x: x*2 1
f(3)

执行结果为7

捕获变量值

有的时候我们在定义匿名函数时,可能希望该函数能使用某变量的值,这样的话可以实现对定义函数的"动态更新",但需要注意的是,匿名函数定义时并不会记录变量的值,而是会在调用该函数时去捕捉变量的值:

代码语言:javascript复制
c=10
f=lambda x:x c
c=30
g=lambda x:x c
print(f(20),g(20))
#要解决这个问题可以在声明函数时设置变量的默认值
c=10
f=lambda x,c=c:x c
c=30
g=lambda x,c=c:x c
print(f(20),g(20))

map函数

map函数的输入值是一个映射关系和一个序列(列表或者元组或者生成器),利用map和lambda组合可以更加简洁的进行映射值的获取,使得代码更加通俗易懂

代码语言:javascript复制
str1=map(lambda x:x**2 1,[1,2,3,5])
for i in str1:
    print(i)

filter函数

filter函数与map函数输入参数相同,区别是filter函数主要用于过滤,它添加了一个限定条件(定义在映射关系中),符合的会被输出,不符合的会被去掉。返回的是过滤后的初始列表中剩下的值:

代码语言:javascript复制
def f(x):
    if x>2:
        return x**2 1
    else:
        pass
str1=filter(f,[1,2,3,5])
for i in str1:
    print(i)

返回3和5

reduce函数

代码语言:javascript复制
#计算4!
from functools import reduce
x=[i for i in range(1,5)]
y=reduce(lambda x,y:x*y,x)
print(y)

Python高阶函数并不常见。 这是因为总有替代函数可以使用, 但就简洁而言, Python内置函数已经达到了目前可以做到的极致, 而且内置函数使用快速方便, 如果没有特殊要求, 可以考虑使用Python内置函 数 除了这些内置函数以外,python还提供了一个itertool的包实现更加丰富的迭代运算。

可以关注一下chain() cycle(),count(),accumlate()

0 人点赞