内置函数
Python提供的,可以直接拿来用的函数叫做内置函数。截止python版本3.6.2一共提供了68个内置函数。
重点掌握的内置函数:map、sorted、max、min(它们都可以与匿名函数连用)
(1)map语法:
map(function, iterable, ...)
参数:
- function -- 函数
- iterable -- 一个或多个序列
返回值:
Python 2.x 返回列表。
Python 3.x 返回迭代器。
例:
>>> list(map(lambda x:x*2,range(10)))
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
(2)sorted语法:
sorted(iterable, key=None, reverse=False)
参数:
- terable -- 可迭代对象。
- key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
- reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
返回值:
返回重新排序的列表。
sort 与 sorted 区别:
- sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
- list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
>>>sorted({1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'})
[1, 2, 3, 4, 5]
利用key进行倒序排序
>>>example_list = [5, 0, 6, 1, 2, 7, 3, 4]
>>> result_list = sorted(example_list, key=lambda x: x*-1)
>>> print(result_list)
[7, 6, 5, 4, 3, 2, 1, 0]
>>>
内置函数分类:
作用域相关:
locals() 返回当前作用域的名字
globals() 返回全局作用域中的名字
迭代器、生成器相作用域相关:
range() 生成数据
next() 迭代器向下执行一次,__next__()
iter() 获取迭代器,__iter__()
输入输出相关:
input() 获取用户输入的内容
print() 打印输出
内存相关:
hash() 获取对象的哈希值(int、str、bool、tuple)
id() 获取对象的内存地址
文件操作相关
open() 用于打开一个文件
模块相关
__import__() 用于动态加载类和函数
帮助:
help() 用于查看函数或模块用途的帮助文档
调用相关:
callable() 用于检查一个对象是否可调用 返回True或False
dir() 查看内置属性,方法,访问的是对象中的__dir__()方法
基础数据类型相关:
数字相关:
bool() 将给定的数据转换成bool型,如果不给值,返回false
int() 将给定的数据转换成int型,如果不给值,返回0
float() 将给定的数据转换成float型
complex()创建一个复数,第一个参数为实部,第二个参数为虚部,或者第一个参数直接用字符串来描述复数
进制转换:
bin() 将给的参数转换成二进制
otc() 将给的参数转换成八进制
hex() 将给的参数转换成十六进制
数学运算:
abs() 返回绝对值
divmode() 返回商和余数
round() 四舍五入
pow(a,b) 求a的b次幂,如果有三个参数,则求完次幂后对第三个数取余
sum() 求和
min() 求最小值
max() 求最大值
和数据结构相关:
list() 将一个可迭代对象转换成列表
tuple() 将一个可迭代对象转换成元组
reversed() 将一个序列翻转,返回翻转序列的迭代器
slice(start,stop,step) 列表的切片
lst="大家好,我是伊人"
s=slice(0,8,1)
print(lst[s])
结果:
大家好,我是伊人
字符串相关:
str() 将数据转化成字符串
format() 格式化处理
bytes() 把字符串转化成bytes类型
#bytes()把字符串转换成bytes类型
s="你好"
bs=s.encode("UTF-8")
print(bs)
s1=bs.decode("UTF-8")
print(s1)
bs=bytes(s,encoding="utf-8") #把字符串编码成UTF-8
print(bs)
结果:
b'\xe4\xbd\xa0\xe5\xa5\xbd'
你好
b'\xe4\xbd\xa0\xe5\xa5\xbd'
数据集合:
dict() 创建一个字典
set() 创建一个集合
frozenset() 创建一个冻结的集合,不能进行添加和删除操作
len() 返回对象中元素的个数
sorted() 对可迭代对象进行排序操作
enumerate() 获取集合的枚举对象
zip() 将可迭代对象最为参数,将对象中对应的元素打包成一个个元组;如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同
l1=['1','2','3']
l2=['a','b','c']
l3=['*','**','***']
for i in zip (l1,l2,l3):
print(i)
结果:
('1', 'a', '*')
('2', 'b', '**')
('3', 'c', '***')
filter() 过滤
map() 会根据提供的函数对指定序列做映射