python 内置函数
all
all 接收一个可迭代对象,如果对象的所有成员都是 True
,则返回 True
,否则返回 False
什么是 False
: 0
, ""
, False
, None
>>> all([1,2])
True
>>> all([0, 2])
False
>>> all(["", 2])
False
any
any 和 all 类似,它也接收一个可迭代对象,如果对象中有任意一个值是 True,就返回 True
>>> any([0,2])
True
ascii
ascii 可以把列表,元组,字典等对象转换成 string(不是转换里面的元素,而是将整个数据结构转换成 string)
>>> ascii([1,2,3])
'[1, 2, 3]'
>>> ascii({'a':1})
"{'a': 1}"
bin,oct,hex
bin 可以将十进制的数字转换成二进制字符
>>> bin(2)
'0b10'
oct 可以将十进制数字转换成八进制
>>> oct(20)
'0o24'
hex 可以将十进制数字转成十六进制
>>> hex(20)
'0x14'
bytes
bytes 可以将字符串按照某种编码转换成字节
>>> bytes('abc', encoding='utf-8')
b'abc'
bytearray
将字符串转换成字节序列
>>> arry = bytearray('abc', encoding='utf-8')
>>> arry[0]
97
>>> len(arry)
3
callable
判断一个对象是否是可调用对象
>>> callable(all)
True
chr, ord
chr 将数字转换成 Unicode 字符
>>> chr(98)
'b'
>>> chr(97)
'a'
ord 将字符转换成数字
>>> ord('a')
97
exec
执行字符串或文件中的 python 语句
>>> s = """
... a = 20
... print(a)
... """
>>> exec(s)
20
>>> namespace = {} # 定义一个命名空间
>>> exec(s, namespace) # 在命名空间中执行代码
20
>>> namespace['a'] # a 这个变量在这个命名空间中
20
eval
可以执行一个 python 表达式,并返回结果
>>> eval('True')
True
>>> eval('[1,2,3]')
[1, 2, 3]
>>> eval('1+2+3')
6
dir
获取一个对象的可调用方法
>>> dir('string')
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'removeprefix', 'removesuffix', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
divmod
获取除数和被除数的商和余数(返回值是元组)
>>> divmod(5,2)
(2, 1)
enumerate(iterable, start_index)
获取可迭代对象的数据和索引。 start_index
用来指定开始的索引,默认从0开始
>>> ls = [1,2,3]
>>> list(enumerate(ls))
[(0, 1), (1, 2), (2, 3)]
>>> list(enumerate(ls,1))
[(1, 1), (2, 2), (3, 3)]
lambda
匿名函数,最多只能进行三元运算
>>> func = lambda x: x if x>10 else 0
>>> func(5)
0
>>> func(20)
20
filter(callable, iterable)
filter 可以对 iterable
中的每个元素,执行 callable
参数指定的函数,并留下返回值为 True 的值。
如果 callable 是 None,则过滤掉所有空值
>>> list(filter(None, [1,2,3,0, "", None, False]))
[1, 2, 3]
>>> list(filter(lambda x:x >5, [0,1,2,3,4,5,6,7,8,9]))
[6, 7, 8, 9]
map(callable, iterable)
对可迭代对象中的每一个元素,执行 callable。
>>> list(map(lambda x: x+5, [0,1,2]))
[5, 6, 7]
reduce
对可迭代对象从左到右逐渐进行累计
import functools
f = functools.reduce(lambda x,y:x+y ,[1,2,3,4,5])
# 上面代码等同于 ((((1+2)+3)+4)+5)
print(f)
frozenset
创建一个冻结的集合,不可添加删除
f = frozenset([1,2,3,3,3,3])
globals(), locals()
print(globals()) # 打印当前文件所有的全局变量名和值,作为字典。
print(locals()) # 打印当前文件的局部变量,例如函数内部的变量
max,min
max 接收一个可迭代对象,返回可迭代对象中的最大值(可迭代对象中不能跨类型,只能存放同一种类型的数据)
>>> max([1,2,3])
3
>>> max(['a', 'b', ''])
'b'
>>> max(['ab', 'aaaaaaa', ''])
'ab'
字符串比较,大写字母小于小写字母。跟字符串的长度无关,它会先将每个字符串的第一个字符相比,第二个字符相比,直到找到较大的字符串
min 和 max 用法一样,它返回可迭代对象中的最小值
>>> min([1,2,3])
1
pow
求一个数的几次方
>>> pow(2,4)
16
>>> pow(2,3)
8
round
四舍五入保留一个数的小数位
>>> round(1.4234) # 默认不保留小鼠
1
>>> round(1.5234) # 会四舍五入
2
>>> round(1.234, 2) # 保留 2 位小数
1.23
sorted(iterable, *, key=None, reverse=False)
key
参数可以用来指定使用哪个数据进行排序
reverse
参数可以降序或者升序排序
对一个可迭代对象进行排序,它不会改变原先的可迭代对象的顺序,而是返回一个新的排完序的可迭代对象。
>>> a = {1:23,99:2,28:72,3:83,72:222}
>>> sorted(a) # 对于字典,默认使用字典的键排序,返回的也是键
[1, 3, 28, 72, 99]
>>> sorted(a.items()) # 对于字典的键值对元组,使用元组的第一个值,即字典的键排序
[(1, 23), (3, 83), (28, 72), (72, 222), (99, 2)]
# key 后面跟随一个匿名函数,对元组的索引为1的元素,即字典的值进行排序,并且是降序
>>> sorted(a.items(), key=lambda x: x[1], reverse=True)
[(72, 222), (3, 83), (28, 72), (1, 23), (99, 2)]
sum
对一个可迭代对象的所有元素进行求和
>>> sum([1,2,3])
6
zip
将两个可迭代对象的元素,一一对应
>>> for i in zip([1,2,3], ['a','b','c']):
... print(i)
...
(1, 'a')
(2, 'b')
(3, 'c')
附录一个菜鸟教程的python内置函数页面:https://www.runoob.com/python/python-built-in-functions.html