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

posted @ 2019-10-30 13:21  wztshine  阅读(173)  评论(0编辑  收藏  举报