今日内容
-
匿名函数
-
内置函数二
-
匿名函数
匿名函数就是一行函数,关键字是lambda
lambda x:x
# lambda 参数:返回值
x 是普通函数的形参 可以不定义形参
:x 是 普通函数的返回值(只能返回一个数据类型)
f = lambda x:x+6
print(f(1)) # 结果:7
print(f.__name__) # 查看函数的名字 函数名为lambda
lst = [lambda :i for i in rang(5)]
print(lst[0]())
# 结果:4
面试题拆解:
lst = []
for i in range(5):
def func():
return i
lst.append(func)
内置函数二
字典的合成方式
dict([(1,2),(3,4)]) # 中括号也可以换成小括号
# {1: 2, 3: 4}
dict(k=1,v=2,c=3)
# {'k': 1, 'v': 2, 'c': 3}
dic1 = {"key1":1,"key2":2}
dic2 = {"a":1,"b":2}
print(dict(**dic1,**dic2))
# {'key1': 1, 'key2': 2, 'a': 1, 'b': 2}
print()
sep:每个元素之间分割的字符,默认是" "空格
end:print执行完后的结束语句,默认是
file:文件句柄,默认是显示到屏幕,也可以写进文件,例如:
print(1,2,3,4,file=open("test","w",encoding="utf-8"))
sum
算出可迭代对象中的和,只能算int
abs
绝对值
dir
print(dir(list))
print(dir(str))
# 查看当前对象所有方法,返回的是列表
zip
拉链
lst1 = [1,2,3,4]
lst2 = ['a','b','c','d','e']
面试题:
print(dict(zip(lst1,lst2)))
# {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
format
print(format('alex','>20')) # 左对齐
print(format('alex','<20')) # 右对齐
print(format('alex','^20')) # 居中
进制转换
print(format(10, "b")) # bin 二进制
print(format(10, "08o")) # oct 八进制
print(format(10, "08x")) # hex 十六进制
print(format(0b1010), "d") # 十进制
reversed
反转
print(list(reversed("alex")))
# 得到的是迭代成列表之后的反转
# 得到的是一个新列表
filter
过滤
lst = [1,2,3,4,5,6]
print(list(filter(lambda x:x>1,lst)))
# 过滤掉大于1的数字
lst = [{'id':1,'name':'alex','age':18},
{'id':1,'name':'wusir','age':17},
{'id':1,'name':'taibai','age':16},]
print(list(filter(lambda x:x['age']>16,lst)))
# 留下年龄大于16的信息
map
映射函数(将可迭代对象中的每个元素执行指定的函数) print(list(map(lambda x,y:x+y,[1,2,3],[11,22,33,44]))) # 将每个列表的对应元素相加 print([i*8 for i in [1,2,3,4]]) # 8,16,24,32
sorted
print(sorted([1,-22,3,4,5,6],key=abs)) # key指定排序规则 # 排序 执行了绝对值之后的列表 lst = ["三国演义","红楼梦","铁道游击队","西游记","水浒传","活着"] print(sorted(lst,key=len)) # 通过长度排序 lst = [{"age": 19}, {"age1": 20}, {"age2": 80}, {"age3": 10}] # print(sorted(lst, key=lambda x: x.values())) print(sorted(lst, key=lambda x: x.keys(), reverse=True)) # 通过键和值排序
max,min
最大值和最小值
reduce
from functools import reduce # 累计算 # 内部实现原理 def func(x,y): return x+y print(reduce(func,[1,2,3,4,5])) print(reduce(lambda x,y:x+y,[1,2,3,4,5]))
闭包
闭包 # 1.在嵌套函数中,使用非本层且非全局变量的就是闭包 # print(inner.__closure__) 判断是否是闭包 返回None就不是 # 闭包的作用: # 1.保护数据的安全性 # 2.装饰器