abs
(x)
返回数字的绝对值,参数可以是整数、也可以是浮点数。如果是复数,则返回它的大小
all
(iterable)
如果可迭代的对象的所有元素全部非空(或者空迭代对象),就返回True。这个函数主要用来判断列表、元组、字典等对象是否有空元素。函数等价于
def any(iterable):
for element in iterable:
if element:
return True
return False
any(iterable)
如果iterable的任何一个元素不为0、''、False,any(iterable)返回True。如果iterable为空,返回False。函数等价于
def any(iterable):
for element in iterable:
if element:
return True
return False
assert
断言, 该函数属于一个单元运算的表达式。类似于lambda。但功能与 if...not类似。如果你能确定你的表达式一定为真可以使用。如果表达式为假则返回一个 AssertionError 错误
程序立即中断
a = 1
assert a >= 1, "Error value"
print("OK")
结果:
OK
bin(x)
将一个十进制数转换为一个二进制字符串.
hex(x)
将一个十进制数转换为一个16进制字符串.
oct(x)
将一个十进制数转换为一个8进制字符串.
bool([x])
对列表[x]中的所有值进行bool判断,当列表中所有的元素都为True时则返回True,否则返回False,能返回False的值类型有:‘’,None,0,(),[],{}。与all()函数类似
print(bool(['a',1,2.4])) # True
print(bool(None)) # False
print(bool(())) # False
print(bool([])) # False
print(bool({})) # False
print(bool('')) # False
print(bool(0)) # False
callable(object)
检查对象object是否可调用,可以被调用返回True,否则返回False:1、函数、类是可以被调用的;2、实例是不可以被调用的,除非类中声明了__call__方法
def func1():
print('a')
a = ''
print(callable(a)) # False
print(callable(func1)) # True
divmod(x,y)
返回x/y的商和余数,结果为元组类型
print(divmod(5,3)) # (1, 2)
ord(c)
返回字符c的ASCII码,x为字符,返回数字型
print(ord('a')) # 97
chr(x)
返回ASCII码x对应的字符, x 为整型,返回字符
print(chr(97)) # 'a'
classmethod(function)
在定义的类中为函数返回一个类方法,主要功能:1、注解,用来说明这个方式是个类方法;2、类方法即可被类调用,也可以被实例调用;3、类方法类似于Java中的static方法;4、类方法中不需要有self参数
enumerate(iterable, start=0)
返回一个可枚举的对象。该对象的next()方法将返回一个tuple.start为开始的序号默认从0开始。或者也可以通过list 或 tuple来转换
print(list(enumerate(('aa','bb','cc'),start=2)))
等价于
def enumerate(sequence, start=0):
n = start
for elem in sequence:
yield n, elem
n += 1
eval(expression)
计算表达式expression的值
round(number, ndigits=None)# 取小数点后几位
print(round(1.54528,3))
结果:
1.545
lambda
lambda并不是python的内置函数,而是一个函数表达式
f_lam = lambda x: x * 2
print(f_lam(10)) # 20
map(function, iterable, ...)
将传入的列表中的每个值进行一次函数运算,python3.x中返回的为 <map object at 0x006AFA30>对象,要获取值需要用list 或 tuple转换
li = (1, 2, 3, 4)
f_map = map(lambda x: x + 3, li)
print(f_map) # python2.x结果[4, 5, 6, 7]
print(list(f_map)) # python3.x结果[4, 5, 6, 7]
reduce()
reduce() 第一个参数是函数,第二个是 序列(列表或元组)。但是,其函数必须接收两个参数。
reduce()是将传人的函数作用在序列的第一个元素得到结果后,把这个结果继续与下一个元素作用(累积计算).
from functools import reduce
print(reduce(lambda x,y:sum([x,y]),range(1,101))) #第一个参数是一个函数,第二个参数是一个序列
max(iterable, *[, key, default])
对一个列表或元素的数据进行迭代,返回最大值.可以通过制定函数来判断
def func(i):
t = divmod(i,3)
return t[1] li = (1,5,3,2,9,19,24)
print(max(li)) # 24
print(max(li,key=func)) # 5 对li中的数据进行取模后的最大值
与max()类似,取最小值
sorted(iterable[, key][, reverse])
对参数中的元素进行排序,默认从小到大排序。可以指定排序计算方法key=function,是否倒序排列reverse=True
def func(i):
t = divmod(i,3)
return t[1] li = (1,5,3,2,9,19,24)
print(sorted(li))
# [1, 2, 3, 5, 9, 19, 24]
print(sorted(li,reverse=True))
# [24, 19, 9, 5, 3, 2, 1]
print(sorted(li,key=func))
# [3, 9, 24, 1, 19, 5, 2]
print(sorted(li,key=func,reverse=True))
# [5, 2, 1, 19, 3, 9, 24]
filter(function, iterable)
和map的执行方式一样,对于一个迭代器iterable的元素进行function计算,将计算的结果进行过滤,符合表达式结果的才返回.在python3.x中返回的结果为<filter object at 0x021CA610>对象,要获取值需要用list 或 tuple转换。
f_filter = filter(lambda x: x > 30, map(lambda y: y * 10, li))
print(f_filter) # python2.x结果[40]
print(list(f_filter)) # python3.x结果[40]
zip(*iterables)
将两个元组或列表的值进行合并成一个新的列表.
a = (1, 2, 3)
y = [6,7,8]
# print(zip(a, y)) # [(1, 6), (2, 7), (3, 8)]
isinstance
isinstance(obj,obj2) 返回obj对象是不是由obj2创建的,或者 obj对象是 obj2 对象的基类创建的
a = 1
print(isinstance(a,int)) # True
class A(object):
pass class B(A):
pass b = B()
print(isinstance(b, B)) # True
print(isinstance(b, A)) # True
issubclass
issubclass(C,B) 判断类C是不是类B的子类
class A(object):
pass class B(A):
pass print(issubclass(B,A))
print(issubclass(A,object))