内置函数
官网链接:
按字母排序。
#求绝对值函数,小于0的数变成大于0的数
abs()
print(abs(-2)) print(abs(0))
结果:
2
0all()
取出第一个值做BOOL值运算,然后next()第二个值做BOOL运算就已经FALSE了,所以里面的值得全部为TRUE
print(all((1,'',2,None)))print(all((1,2,)))#可迭代对象里的值都不不为空就为为Trueprint(all(''))#但是如果可迭代对象是空,就为Trueprint(all(i for i in range(1,10)))结果:-----------all func-----------FalseTrueTrueTrue
sum() 求和函数
print("-----------sum func-----------")#求和函数res=sum(i for i in range(3))print(res)
any()判断是否为可迭代对象:
print("-------- any func -----------")print(any([None,0,'',{},1]))print(any([ ]))
bin()函数 #bin 10进制转成2进制
print('----------bin func-------------')print(bin(3))
bool()函数 ,判断真假
print('----------bool func-------------')print(bool(0))print(bool(1))
bytes()转成一个字节格式:
print('------------bytes func---------------')print(bytes('hello',encoding='utf-8'))
callable() 对象是否能被调用:
print(callable(sum))def test(): passprint(callable(test))
结果:
----------------callable------ True True
chr() #查看ascii 码对应关系
print(chr(67))print(chr(65))print(ord('A'))print('---------complex-----------')结果:---------chr-----------CA65
# 复数:
x=1-2jprint(x.real) #实步print(x.imag) #虚步print('---------complex-----------')
结果:
---------complex----------- 1.0 -2.0 ---------complex-----------
#isinstance 判断类型:
num=1.0print('------------instaltance---------')print(isinstance(num,int))print(isinstance(num,float))结果:------------instaltance---------FalseTrue
#str 函数:
print(str(1))print(str({ 'a':1}))结果:------------str---------1{ 'a': 1}
#list
print('--------------list--------------')x=[]x=list(i for i in range(10))print(list(x))结果:--------------list--------------[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
#dict
print('--------------dict------------')d={ 'a':1}d=dict(x=1,y=3,z=45)print(d)结果:--------------dict------------{ 'z': 45, 'y': 3, 'x': 1}
#set set是一个可变的集合:
print('--------------set------------')s={1,2,3,4,5}print(s)s.add(90)print(s)结果:--------------set------------{ 1, 2, 3, 4, 5}{ 1, 2, 3, 4, 5, 90}
# frozenset () 是不可变集合:
f=frozenset({1,2,3,4,5})print(type(f))结果:----------------frozenset--------
reduce 函数
from functools import reducel=list(range(100))print(l)#后面的100是默认值print(reduce(lambda a,b:a+b,l,100))结果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]5050
print('------------reduce------------') #求出列表100个数的和
l=list(range(100))
print(l)
#把这100个值做一个求和运算,并合并成一个最终的结果 #后面是一个可迭代对象l , 细分一下100的和,每次都是两个值相加,值传 #给x,y两个参数,然后是x+y , 每次都是next()的取l的值
print(reduce(lambda x,y:x+y,l))
#reduce 还可以设置默认值,也是就开始在next()的时候这个默认值50就已经生效 #,在第一次 next()的就已经拿50 然后 50+0 ,再next() 51+1 52+2..........
print(reduce(lambda x,y:x+y,l,50))
#结果:
5000
map映射函数:#每一个数都可以映射一个新的数,得到一个新的列表
l=[1,2,3,4,8,5]#算出每个元素的平方x=[i**2 for i in l]print(x)#以一个迭代器的方式m=map(lambda item:item**2,l)print(list(m))#在每个人的名字都加上 rubename_l=['wangwu','zhangsan','lisi','zhaoliu']m=map(lambda name:name+' rube',name_l)print(list(m))--------------map----------------[1, 4, 9, 16, 64, 25][1, 4, 9, 16, 64, 25]['wangwu rube', 'zhangsan rube', 'lisi rube', 'zhaoliu rube']
filter函数练习:
#只取出下面人物大于24的年龄:name_li=[ { 'name':'zhangsan','age':29}, { 'name':'lisi','age':28}, { 'name':'wangwu','age':22}, { 'name':'zhaoliu','age':24}]操作:fil=filter(lambda name:name['age']>24,name_li)print(list(fil))结果:[{ 'age': 29, 'name': 'zhangsan'}, { 'age': 28, 'name': 'lisi'}]
#只取出下面大于20的商品名称shares={ 'IBM':36.6, 'Lenovo':23.2, 'baozi':21.2, 'openstack':10.2,}操作:print('-----------------------shares--')fil2=filter(lambda key:shares[key]>20,shares)print(list(fil2))结果:['baozi', 'IBM', 'Lenovo']