Python3 实用的内置函数
本文以lambda()、map()、filter()、reduce()这四个关键函数为主,包括其他一些常见的内置函数。
1.lambda() #匿名函数
syntax: lambda [arg1 [,arg2,.....argn]]:expression
#比如该功能函数匿名函数一句话就能实现
def calc(x):
return x+1
res=calc(10)
print(res)
输出: 11
#匿名函数实现
func = lambda x:x+1
print(func(10))
输出: 11
#lambda冒号前的x为形参,冒号后的为实参。
2.map() #仅一次处理序列中的每个元素,得到的结果是一个'列表',该'列表'元素个数及位置与原来一样
syntax: map(function, iterable, ...)
eg.让列表 1-5 的元素自加1
#第一种方法
def add_one(x):
return x+1
num_list=[1,2,3,4,5]
print(list(map(add_one,num_list)))
输出: [2, 3, 4, 5, 6]
#lambda结合map实现
num_list=[1,2,3,4,5]
print(list(map(lambda x:x+1,num_list)))
输出:[2, 3, 4, 5, 6]
3.filter() #遍历序列中的每个元素,判断每个元素得到布尔值,如果是True则留下来
syntax: filter(function, iterable)
#输出列表 1-10 中的偶数
num_list=[1,2,3,4,5,6,7,8,9,10]
def double_n(x):
return x%2==0
def filter_test(func,list):
ret=[]
for p in list:
if func(p):
ret.append(p)
return ret
res=filter_test(double_n,num_list)
print(res)
输出:[2, 4, 6, 8, 10]
#用filter加lambda实现
res=list(filter(lambda x:x%2==0,num_list))
print(res)
输出:[2, 4, 6, 8, 10]
4.reduce() # 用传给 reduce 中的函数先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果
syntax: reduce(function, iterable[, initializer])
#实现 1-3 列表中元素的总和
from functools import reduce #python需要加载该模块否则标红.
def auto_add(x,y):
return x + y
print(reduce(auto_add,[1,2,3]))
输出: 6
#reduce结合lambda实现
from functools import reduce
print(reduce(lambda x,y:x+y,[1,2,3]))
输出:6
一些常见的内置函数
all() #把序列当中每一个元素拿出来做布尔运算,只能单个参数.(0|空|NULL)为假
eg.
print(all([1,2]))
print(all([0]))
输出:
True
False
any() #只要有一个为真全为真.
eg.
print(any([1,2]))
print(any([1,0]))
输出:
True
True
进制转换
bin() #十进制转换成二进制.
hex() #十进制转换成十六进制.
oct() #十进制转换成八进制.
bool() #判断布尔值,真则Ture,反之.
chr() #按照ascsi码打印字符.
eg.
print(chr(65))
输出:
A
dir() #打印某个对象有哪些方法.
eg.
print(dir(all))
输出:['__call__', '__class__', '__delattr__', '__dir__', ....等等
divmod(10,3) #10表示一共有多少条记录,3表示一页放多少条记录
time.sleep(10) #休息十秒
help(all) #打印all方法
globals() #打印全局变量
locals() #打印局部变量(当前级别下的环境变量)
eval() #将字符串中的数据结构提取出来
eg.将字符串转成
dic = {'name': 'hehe'}
dic_str = str(dic)
d1 = eval(dic_str)
print(d1['name'])
输出:
hehe