重要的内置函数和匿名函数
匿名函数:lambda 关键字 -- 定义函数
x,y 形参
x + y 返回值 -- 只能返回一个数据类型
f = lambda x, y: x + y
print(f(1, 2))
print(f.__name__)
同一行定义 同一行调用
print((lambda x: x)(2))
lst = [lambda i: i * i for i in range(10)]
print(lst[2](2))
上述代码原理如下:
lst = []
for i in range(10):
def func(i):
return i * i
lst.append(func)
print(lst[2](3))
上述代码改变(无形参):
lst = [lambda: i * i for i in range(10)]
print(lst[2]())
上述代码原理如下:
lst = []
for i in range(10):
def func():
return i * i
lst.append(func)
print(lst[2]())
一行函数:
1、形参可以不写
2、返回值必须要写,返回值只能返回一个数据类型
练习题:
lst = list((lambda i: i * i for i in range(5)))
print(lst[2](4))
lst = [x for x in (lambda: i ** i for i in range(5))]
print(lst[2]())
重要内置函数
1、format()
不常用(对齐方式):
print(format(13, ">20")) # 右对齐
print(format(13, "<20")) # 左对齐
print(format(13, "^20")) # 居中
常用(进制转换+自定义位数):
print(format(13, "08b")) # 从0到8用b b -- 二进制
print(format(13, "08d")) # 从0到8用d d -- 十进制
print(format(13, "08o")) # 从0到8用o o -- 八进制
print(format(13, "08x")) # 从0到8用x x -- 十六进制
2、过滤:filter()
lst = [1, 2, 3, 4, 5, 6, 7, 8]
print(list(filter(lambda x: x % 2 == 1, lst)))
上述代码分解:
lst = [1, 2, 3, 4, 5, 6, 7, 8]
def func(x):
return x % 2 == 1
print(list(filter(func, lst))) # func就是自己定义一个过滤条件,lst就是要迭代的对象
3、对象映射:map()
对可迭代对象中每个元素进行加工
print(list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6])))
4、反转(可迭代对象):reversed()
print(list(reversed("yulin")))
生成新的列表:
lst = [1, 2, 3, 4, 5]
lst1 = list(reversed(lst))
print(id(lst))
print(id(lst1))
没有生成新的列表:
lst = [1, 2, 3, 4, 5]
lst.reverse()
print(lst)
5、排序(生成新的):sorted()
print(sorted([1, 23, 43, 656, 241]))
降序 reverse = True :
lst = [1, 23, 5345, 1, 23, 12]
print(sorted(lst, reverse=True))
key= 指定排序规则:
dic = {"key1": 1, "key2": 2, "key3": 56}
print(sorted(dic, key=lambda x: dic[x], reverse=True))
6、取最大:max()
print(max([1, 2, -33, 4, 5], key=abs))
7、累计算:reduce()
from functools import reduce
print(reduce(lambda x, y: x - y, [1, 2, 3, 4, 5]))

浙公网安备 33010602011771号