内置函数
一、基础数据类型
1、和数字相关
(1)、数字类型 :{
int: 整型,
bool: 布尔型,
float: 浮点型,
complex: 负数}
(2)、进制转换 {
bin: 二进制,
oct: 八进制,
hex: 十六进制
}
(3)、数学运算{
abs: 绝对值,
divmod: 返回商余,
round: 小数精确(默认到整数,也可以标记精确几位),
pow: 幂运算,
sum: 求和,
min: 计算最小值(可以传函数进来,也可以计算可迭代对象),
max: 计算最大值(与min方法一直)
}
2、和数据结构相关
(1)、序列{
列表和元组:{list:转化为列表,tuple:转化为元组},
相关内置函数:{reversed:参数是序列,返回值是反向迭代器,slice:切片},
字符串:{
str: 字符串,
format: 格式化输出(并不仅仅是格式化,还有format_spec功能),
bytes: 转化为bytes类型,
bytearray: 返回一个新的字节数组,
memoryview: 返回给定参数的内存查看对象,
ord: 字符按照unicode转数字
chr: 数字按照unicode转字符
ascii: 字符串转ascii,
repr: 用于%r格式化输出
}
(2)、数据集合{
dict: 字典,
set: 集合,
frozenset: 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素
}
(3)、相关内置函数{
len: 返回一个可迭代对象元素的长度,
enumerate: 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,
同时列出数据和数据下标,一般用在 for 循环当中,
all: 判断是否有bool值为 False 的值,
any: 判断是否有bool值为 True 的值,
zip: 返回 一个迭代器
filter: 接收一个函数f和一个列表list,,这个函数f的作用是对列表里每个元素
进行判断,返回Ture或者False,filter根据结果自动过滤掉不符合条件的元素,返回
返回符合的元素组成新的列表,
map: 函数应用于每一个可迭代的项,返回的是一个结果list。如果有其他的可迭代参数传进来
map函数则会把每一个参数都以相应的处理函数进行迭代处理。map()函数接收两个参数,一个是函数,
一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回,
sorted: 对list、Dict进行排序,返回副本,原始输入不变(参数说明:iterable:可迭代对象;key:
传入一个函数名,函数的参数是可迭代对象中的每一项,根据函数的返回值大小排序;reverse:排序规则
reverse=Ture降序,reverse=False升序,有默认值;返回值:有序列表)
}
3、作用域相关{
locals:以字典类型返回当前位置的全部局部变量,
globals:以字典类型返回当前位置的全部全局变量
}
4、迭代器生成器相关{
range:函数可创建一个整数列表,一般用在 for 循环中,
next:返回迭代器的下一个项目,
iter:用来生成迭代器
}
5、其他{
(1)、字符串类型代码的执行{
evel:用来执行一个字符串表达式,并返回表达式的值
exec:用来执行一个字符串表达式,无返回值
complie: 编码
}
(2)、输入输出{
input: 输入,
print: 输出,
}
(3)、内存相关{
hash: 用于获取取一个对象(字符串或者数值等)的哈希值,
id: 函数用于获取对象的内存地址
}
(4)、文件操作相关{open:于打开一个文件,创建一个 file 对象,相关的方法才可以调用它进行读写}
(5)、模块相关{__import__:用于动态加载类和函数}
(6)、帮助{help:进入help模式,指定查看某对象的帮助信息}
(7)、调用相关:{callable:返回True或者False}
(8)、查看内置属性{dir: 查看所有的内置函数(dir(__builtins__)),查看对
某对象的属性及方法}
}
6、面向对象{
pass #先欠着,还没学到,到时候补充 }
7、反射{}
}
匿名函数
匿名函数:为了解决那些功能很简单的需求而设计的一句话函数
#这段代码 def calc(n): return n**n print(calc(10)) #换成匿名函数 calc = lambda n:n**n print(calc(10))
格式说明
函数名 = lambda 参数 :返回值
#参数可以有多个,用逗号隔开 #匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值 #返回值和正常的函数一样可以是任意数据类型
l=[3,2,100,999,213,1111,31121,333] print(max(l)) dic={'k1':10,'k2':100,'k3':30} print(max(dic)) print(dic[max(dic,key=lambda k:dic[k])])
res = map(lambda x:x**2,[1,5,7,4,8]) for i in res: print(i) 输出 25 16
res = filter(lambda x:x>10,[5,8,11,9,15]) for i in res: print(i) 输出 15
练习
现有两个元组(('a'),('b')),(('c'),('d')),请使用python中匿名函数生成列表[{'a':'c'},{'b':'d'}] #答案一 test = lambda t1,t2 :[{i:j} for i,j in zip(t1,t2)] print(test(t1,t2)) #答案二 print(list(map(lambda t:{t[0]:t[1]},zip(t1,t2)))) #还可以这样写 print([{i:j} for i,j in zip(t1,t2)])
1.下面程序的输出结果是: d = lambda p:p*2 t = lambda p:p*3 x = 2 x = d(x) x = t(x) x = d(x) print x 2.现有两元组(('a'),('b')),(('c'),('d')),请使用python中匿名函数生成列表[{'a':'c'},{'b':'d'}] 3.以下代码的输出是什么?请给出答案并解释。 def multipliers(): return [lambda x:i*x for i in range(4)] print([m(2) for m in multipliers()]) 请修改multipliers的定义来产生期望的结果。 练习
内置函数掌握
其他:input,print,type,hash,open,import,dir
str类型代码执行:eval,exec
数字:bool,int,float,abs,divmod,min,max,sum,round,pow
序列——列表和元组相关的:list和tuple
序列——字符串相关的:str,bytes,repr
序列:reversed,slice
数据集合——字典和集合:dict,set,frozenset
数据集合:len,sorted,enumerate,zip,filter,map