def index(name): return d[name] print(max(d,key=index)) # 因为比对的是key,于是就去对比字符串的第一位的aiscc表 # 如果不给key,他就会直接比对,如果加了key,他就按照函数进行比对 # 他会自动给函数加括号,然后对比key, 但是返回还是d # 没有key,对比d, 返回d # 有key 对比key, 返回d # 这里就可以用匿名函数 print(max(d,key=lambda name:d[name])) 比较资薪 返回人名字
map:
# map 映射 l = [1,2,3,4,5,6] # 给每个值加一 # print(list('hello')) # >>>['h','e','l','l','o' print(list(map(lambda x:x+1,l))) # map也是基于for循环的 print(list(map(lambda x:x+5,l))) # 加5
zip:
# zip 拉链(将两边拉起来)(基于for循环) l1 = [1,2,3,4] l2 = ['cly','byc','cqz'] # l3 = ['a','b','c'] print(list(zip(l1,l2))) # >>>[(1, 'cly'), (2, 'byc'), (3, 'cqz')] # 如果有一个列表(任意)多了,就会拉不动了,不会报错,于是就不拉了 # 它能一次性拉多个,随便拉几个,
filter
# 类似于过滤(基于for循环)
l = [1,2,3,4,5,6]
print(list(filter(lambda x:x != 3,l)))
sorted
# 从小到大排序
l = ['cly','byc','cqz']
print(sorted(l,reverse=True))
# 从小到大排序。使用reverse=True 可以反序
# reduce
# 多个变一个(相加)
from functools import reduce
l = [1,2,3,4,5,6]
print(reduce(lambda x,y:x+y,l))
# 先取两个,然后每次只取一个,因为第一次只有一个的话没法加
l = [1,2,3,4,5,6]
print(reduce(lambda x,y:x+y,l,6000))
# 也可以放入初始值(6000),如果没有初始值,就会用上面的情况(第一次取两个)
# abs
# 求绝对值
print(abs(11))
print(abs(-11))
# all, any
l = [0,1,2]
print(all(l)) # 必须里面的值都是True,只要有一个Fales就返回False
print(any(l)) # 只要有一个是True,就返回True
# bin , oct , hex
# 进制转换
print(bin(10)) # 将十进制转换为二进制
print(oct(10)) # 将十进制转换为八进制
print(hex(10)) # 将十进制转换为十六进制
# byes()
# 转换为二进制
s = '123我'
print(s.encode('utf-8'))
print(bytes(s,encoding='utf-8'))
# callable
# 判断是不是可以调用的
# 可调用的(可以加括号执行相应功能的)
l = [1,2,3,4]
def func():
pass
print(callable(l))
print(callable(func))
>>>
False
True
# chr ord
# chr # 将数字转化为utf-8码表对应的字符
# ord # 将字符串按照utf-8表转换为对应数字
print(chr(25101))
print(ord('我'))
# dir() (**)
# 获取当前对象名称空间中的名字(打印它可以使用的方法)
# 返回当前对象可调用的方法
l = [1,2,3,4]
print(dir(l))
# divmod 分页器
# 网页常用,
# 每页展示几条……
# divmod : 就是100/11 得到需要多少页,还有多少条
print(divmod(100,11))
# >>> (9,1)
total_num,more = divmod(101,10) # 用了解压赋值
if more:
total_num += 1
print('需要页数:',total_num)
# enumerate 枚举
l = ['a','b']
for i in enumerate(l):
print(i)
for i in enumerate(l,1): # 设置开始的序列号
print(i)
# eval exec
#
# eval()
# 缺陷,不能识别逻辑代码 x = 1 这种,只能识别简单的python代码,(1+2)这种可以识别,
# 去掉字符串的引号
# 只能识别简单的语句
# exec()
# 用的更多
# 他能识别逻辑语句(for循环都可以识别)
# 能识别困难一点的
#
s = 'print("hello,world")'
eval(s)
exec(s)
globals,locals
# globals全局变量
# locals 局部名称空间的变量(如果放在全局,就打印全局变量)
def index():
name = '局部的name'
print(locals())
print(globals())
print('---------')
index()
# help
# 打印函数的注释
def func1():
'''
只是函数
:return:
'''
print(help(func1))
# isinstance
# 判断对象是不是某个数据类型
n = 1
print(type(n))
print(isinstance(n,int)) # 推荐
print(type(n) is int) # 不推荐
# pow 求次方
print(pow(10,2))
# round
# 四舍五入(就判断一位)
print(round(3.59))