标签:.com eva play 对象 自己 三元 orm for循环 技术
内置函数有如下:
根据分类学习会容易些
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__
max min sorted
filter map reduce
# max min print(max(1,2,3)) print(min(1,2,3)) ‘‘‘ 3 1 ‘‘‘ #需求 打印出 工资最高的人名 是人名 salaries={ ‘egon‘:3000, ‘alex‘:100000000, ‘wupeiqi‘:10000, ‘yuanhao‘:2000 } print(max(salaries)) #默认比较的是key print(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也是一样的原理 ‘‘‘ alex yuanhao ‘‘‘ #sorted #需求:按照薪资从小到大排列人名 salaries={ ‘egon‘:3000, ‘alex‘:100000000, ‘wupeiqi‘:10000, ‘yuanhao‘:2000 } print(sorted(salaries, key=lambda name: salaries[name])) ‘‘‘ 原理参照max [‘yuanhao‘, ‘egon‘, ‘wupeiqi‘, ‘alex‘] ‘‘‘
#map 映射 #需求 在每个人的名字后边加上 _sb names=[‘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 = 值2 res=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 reduce print(reduce(lambda x,y:x+y,range(101))) #求1-100的和 print(reduce(lambda x,y:x+y,range(101),1)) #默认初始值是0 可以手动指定 这里指定为了1 ‘‘‘ 5050 5051 ‘‘‘ #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 不怎么用
标签:.com eva play 对象 自己 三元 orm for循环 技术
原文地址:http://www.cnblogs.com/lazyball/p/7298375.html