首页 > 代码库 > 内置函数

内置函数

内置函数有如下:

技术分享

根据分类学习会容易些

与数据类型有关的

int
#bool值为空 :None 空  0 False
bool
str
tuple
complex
float
list
set
frozenset 也是个集合 不可变集合

在面向对象里讲的

object
classmethod
staticmethod
property
delatter
hasatter
setatter
getatter
isinstance #用来判断一个变量的类型
issubclass
supper
__dict__

与生成器有关的

vars
locals
__dict__

与lambda结合使用的

max min sorted

filter map reduce

技术分享
# max minprint(max(1,2,3))print(min(1,2,3))‘‘‘31‘‘‘#需求  打印出 工资最高的人名  是人名salaries={    egon:3000,    alex:100000000,    wupeiqi:10000,    yuanhao:2000}print(max(salaries)) #默认比较的是keyprint(max(salaries.values())) #这样打印出来的是工资最高的工资# #思路# #既然默认比较的是key 那么就把value搞成key 反一下max(salaries.values())max(salaries.keys())print(max((zip(salaries.values(),salaries.keys()))))‘‘‘看似实现了 但也不是想要的效果(100000000, ‘alex‘)‘‘‘#不在兜圈子 直奔主题#max除了直接比较外,还可以指定key即指定通过什么比较#根据以下这段代码,阐述max的工作原理max(salaries,key=lambda name:salaries[name])‘‘‘max(salaries),salaries是个字典,max不指定key的话,默认就会用自己的一个参数 salaries做比较(也就是salaries的key),然后打印key值,现在手动给max指定了key即指定了用什么做比较,但是也不会改变最终的打印效果,依然是max的第一个参数 salaries的key,这说明打印出来的肯定还是个人名控制的只能是拿什么比较  控制不了输出max 首先读到salaries 会for循环salaries,拿到sallaries的key值,也就是名字,然后赋值给后边的key也就是lambda,然后通过lambda得到的是字典的value也就是薪资,那么max此时就会拿薪资做比较,拿到薪资最高的值,然后返回值对应的名字这样就达到了最初的效果‘‘‘print(max(salaries,key=lambda name:salaries[name]))print(min(salaries,key=lambda name:salaries[name])) #min也是一样的原理‘‘‘alexyuanhao‘‘‘#sorted#需求:按照薪资从小到大排列人名salaries={    egon:3000,    alex:100000000,    wupeiqi:10000,    yuanhao:2000}print(sorted(salaries, key=lambda name: salaries[name]))‘‘‘原理参照max[‘yuanhao‘, ‘egon‘, ‘wupeiqi‘, ‘alex‘]‘‘‘
max min sorted
技术分享
#map 映射#需求 在每个人的名字后边加上  _sbnames=[alex,wupeiqi,yuanhao,yanglei,egon]res=map(lambda x:x+_sb,names)#res.__next__()#res.__init__()  是个迭代/生成器  所以用 list查看结果print(list(res))‘‘‘原理 lambda放在前边,for 循环后边的names 赋值给lamba ,lamba的返回值就是函数的返回值 和max min有一样的也有不一样的返回值这里不一样  注意‘‘‘‘‘‘打印结果[‘alex_sb‘, ‘wupeiqi_sb‘, ‘yuanhao_sb‘, ‘yanglei_sb‘, ‘egon_sb‘]‘‘‘#三元表达式# result = 值1 if 条件 else 值2# 如果条件为真:result = 值1# 如果条件为假:result = 值2res=map(lambda x: x if x==egon else x+_sb,names)print(list(res))‘‘‘# [‘alex_sb‘, ‘wupeiqi_sb‘, ‘yuanhao_sb‘, ‘yanglei_sb‘, ‘egon‘]# ‘‘‘#reduce 合并from functools import reduceprint(reduce(lambda x,y:x+y,range(101))) #求1-100的和print(reduce(lambda x,y:x+y,range(101),1)) #默认初始值是0 可以手动指定 这里指定为了1‘‘‘50505051‘‘‘#filter 过滤names=[alex_sb, wupeiqi_sb, yuanhao_sb, yanglei_sb, egon]print(list(filter(lambda name:name.endswith(sb),names)))‘‘‘[‘alex_sb‘, ‘wupeiqi_sb‘, ‘yuanhao_sb‘, ‘yanglei_sb‘]‘‘‘
map reduce filter

其他常用的

了解的

compile
eval
exec
format 和字符串的format 不一样 没什么用
hash 不怎么用

 

内置函数