首页 > 代码库 > 内置函数
内置函数
内置函数有如下:
根据分类学习会容易些
与数据类型有关的
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‘]‘‘‘
#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‘]‘‘‘
其他常用的
了解的
compile
eval
exec
format 和字符串的format 不一样 没什么用
hash 不怎么用
内置函数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。