在函数定义的时候,不确定在调用的时候,实参有几个,这种场景下可以使用可变参数。
可变参数也称为多值参数,不定长参数。
语法:
1在普通的参数前面加上一个* ,这个参数就变成可变参数
2这个参数可以接受任意多个位置传递参数的数据,它的类型是元组
3 按照惯例,这个形参写作args,即*args,这个是习惯写法
简单代码示例:
def fn(*args):
print(args)
fn(1,2,3) # (1, 2, 3)
小应用:
求任意多个数字的和。
def sum(*args):
result = 0
for i in args:
result += i
return result
sum1 = sum(1,2,3,4,5)
print(sum1)
匿名函数,使用lambda定义的表达式,称为匿名函数。
匿名函数只能写一行代码,所以只能用来定义一些实现简单功能的函数
匿名函数一般不直接调用,而是作为另外一个函数的参数去使用。
如果非要调用,可以把匿名函数赋值给一个变量。
代码示例:
lambda a, b: a + b
小案例:
给列表中的元素按照age排序
1 sort 方法只能对数字和字符串排序
2如果要用sort排序,sort的第一个参数是key,要指定用列表中的哪一个字段来排序
3key的参数正好使用匿名函数,返回的就是age值,根据age值进行排序
list1 = [
{'username':'zhangsan','age':19},
{'username': 'xiaoming', 'age': 9},
{'username': 'lily', 'age': 20}
]
list1.sort(key=lambda x:x['age'])
print(list1)