1.匿名函数:
他没有绑定名字,使用一次即被收回,加括号可以运行。
匿名函数语法:lambda 参数:返回值
res=(lambda x,y :x+y)(1,2)
print(res) #3
匿名函数通常与max()、sorted()、filter()、sorted()方法联用
1.max返回最大值 (iterable, [, default=obj, key=func])(arg1, arg2, args, *[, key=func])
res=max([1,2,3,4,5])
print(res) #5
res=max(1,2,3,4,5,6)
print(res) #6
2.有名函数得出薪资最高的人
salary_dict = {
'nick': 3000,
'jason': 100000,
'tank': 5000,
'sean': 2000,
'z': 1000
}
#res=max(salary_dict) #默认key的首字母排序
#print(res) #z
#def func(i):
# return salary_dict[i]
#res=max(salary_dict,key=func)
res=max(salary_dict,key=lambda i:salary_dict[i])
print(res) #jason
key=func循环遍历salary_dict,会取出所有的key值,在func函数中执行返回薪资,通过薪资排序,得到薪资最高的key。
3.min 返回最小值
salary_dict = {
'nick': 3000,
'jason': 100000,
'tank': 5000,
'sean': 2000,
'z': 1000
}
res=min(salary_dict,key=lambda i:salary_dict[i])
print(res) #z
4.filter (function or None, iterable) --》筛选可迭代器对象里的元素
#有名函数实现
def function(item):
if item>2:
return True
else:
return False
res=filter(function,[1,2,3,4])
print(res) #<filter object at 0x00000000020BC0F0>
print(list(res)) #[3,4]
#匿名函数实现
res=filter(lambda item:item>2,[1,2,3,4])
print(list(res)) #[3,4]
#强制类型转换针对所有数据类型
salary_dict = {
'nick': 3000,
'jason': 100000,
'tank': 5000,
'sean': 2000,
'z': 1000
}
res=filter(lambda item:salary_dict[item]>=3000,salary_dict)
print(list(res)) #['nick', 'jason', 'tank']
5.map 映射 (func, *iterables)--》迭代器
#有名函数实现
def func(item):
return item+1
res=map(func,[1,2,3])
print(res)
print(list(res) #[2,3,4]
#匿名函数实现
res=map(lambda i:i+1,[1,2,3])
print(list(res)) #[2,3,4]
6.sorted 排序
res=sorted([2,4,9,7,1],reverse=True)
print(list(res))
salary_dict = {
'nick': 3000,
'jason': 100000,
'tank': 5000,
'sean': 2000,
'z': 1000
}
res=sorted(salary_dict,key=lambda i:salary_dict[i],reverse=True) #按照薪资排序
print(list(res))
res=sorted(salary_dict,key=lambda i:i,reverse=True) #按照key的首字母排序
print(list(res))
运行结果:
[9, 7, 4, 2, 1]
['jason', 'tank', 'nick', 'sean', 'z']
['z', 'tank', 'sean', 'nick', 'jason']
2.Python解释器内置方法:
#bytes 转换为二进制
res=bytes('中国',encoding='utf8')
print(res) #b'\xe4\xb8\xad\xe5\x9b\xbd'
#chr/ord
print(chr(97)) #a
print(ord('a')) #97
#divmod
print(divmod(10,4)) #取整/取余 (2,2)
#enumerate 列举
lt=[1,2,3]
for i in range(len(lt)):
print(i,lt[i])
#下面的方法同上
for i,j in enumerate(lt): #取出索引和值
print(i,j)
运行结果:
0 1
1 2
2 3
#eval-->把字符串的引号去掉,留下来的是什么就是什么
s='"abc"'
print(type(eval(s)),eval(s)) #<class 'str'> abc
hash,可变不可哈希
print(hash(123123))
# 了解
# abs
print(abs(-1))
# all# 可迭代对象内的元素全部为True则为True
print(all([1, 2, 3, 3]))
# any
print(any([0, 0, ]))
# bin/oct/hex
print(bin(123))
print(oct(123))
print(hex(123))
# dir: 列出模块的所有方法
# import time
#
# print(dir(time))
# frozenset: 不可变化的集合,类似于元组
s = frozenset({1, 2, 3})
print(s)
# gloabals/locals
# print(globals()) # 列出所有全局变量
# print('locals():', locals())
def func():
s = 's1'
print(globals()) # 列出所有全局变量
print('locals():', locals()) # 列出当前位置所有变量
func()
# pow
print(pow(2, 2))
# round
print(round(10.333))
# slice
s = slice(1, 5, 2) # 1start,5stop,2step
lt = [1, 2, 3, 4, 5, 6, 7]
print(lt[s])
print(lt[1:5:2])
# # sum
print(sum([1, 2, 3, 4, 5]))
# __import__ # 通过字符串导入模块
# import 'time'
time = __import__('time')
print(time.time())