lambda函数的使用
#1.无参数
fn1 = lambda: 100
print(fn1())
#2.一个参数
fn2 = lambda a: a
print(fn2('hello world'))
#3.默认参数(缺省参数)
fn3 = lambda a, b, c=100: a + b + c
print(fn3(10, 20))
print(fn3(10, 20, 200))
调试结果:
#4.可变参数: *args
fn4 = lambda *args: args
print(fn4(10, 20))
print(fn4(10, 20, 30, 40))
#5.可变参数: **kwargs
fn5 = lambda **kwargs: kwargs
print(fn5(name='python', age=30))
*args返回的是元组,而**kwargs返回的是字典
students = [
{'name': 'TOM', 'age': 20},
{'name': 'ROSE','age': 19},
{'name': 'JACK', 'age':22}
]
#1.name key对应的值进行升序排序
students.sort(key=lambda x: x['name'])
print(students)
#2.name key对应的值进行降序排序
students.sort(key=lambda x: x['name'], reverse=True)
print(students)
#3.age key对应的值进行升序排序
students.sort(key = lambda x: x['age'])
print(students)
调试结果:
内置高阶函数map(将列表中的数进行平方)
list1 = [1, 2, 3, 4, 5]
def func(x):
return x ** 2
result = map(func, list1)
print(result)
print(list(result))
调试结果:
内置高阶函数reduce():
其中的func元素必须有两个参数,每次func计算的结果继续和下一元素做累计计算.
list1 = [1, 2, 3, 4, 5]
import functools
def func(a,b):
return a + b
result = functools.reduce(func, list1)
print(result)
内置高阶函数filter
list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
#1.定义功能函数: 过滤序列中的偶数
def func(x):
return x % 2 == 0
#2.调用filter
result = filter(func, list1)
print(result)
print(list(result))
作用:过滤掉列表中的奇数
文件操作:
r:只读,如果文件不存在,报错,不支持写入操作
w:只写,如果文件不存在,新建文件,如果执行写入会覆盖原有内容
a:追加,如果文件不存在,新建文件,如果执行写入则在原有内容基础上追加新内容
r+: r没有该文件则报错,文件指针在开头,所以能读取出来数据
w+:没有该文件会新建文件,w特点:文件指针在开头,用新内容覆盖原内容
a+:没有该文件会新建文件,文件指针在结尾,无法读取数据