参数前面有一个*
号,表示是可变的。在函数内部,如:参数 numbers 接收到的是一个 tuple
def add(*numbers):
print(numbers)
add(1, 'adc', ["q", 'w'], {"1": "2"})
# (1, 'adc', ['q', 'w'], {'1': '2'})
def add(**kwargs):
print(kwargs)
add(x=1, y=2)
# {'x': 1, 'y': 2}
def add(x, y, z=0, *args, **kwargs):
print(x, y, z, args, kwargs)
add(1, 2, 3, 11, 22, 33, a=4, b=5, c=6, d=7)
# 1 2 3 (11, 22, 33) {'a': 4, 'b': 5, 'c': 6, 'd': 7}
def func(g, arr):
return [g(x) for x in arr]
def double(x):
return 2 * x
def square(x):
return x * x
arr1 = func(double, [1, 2, 3, 4])
arr2 = func(square, [1, 2, 3, 4])
print(arr1)
print(arr2)
# [2, 4, 6, 8]
# [1, 4, 9, 16]
1.python提供了一个关键字 lambda
,让我们可以创建一个匿名函数,也就是没有名称的函数。
2.冒号前面的变量是该匿名函数的参数,冒号后面是函数的返回值,注意这里不需使用 return 关键字
a = (lambda x: 2 * x)(2)
print(a)
b = lambda x: 2 * x
print(b(2))
# 4
# 4
示例1:
def func(g, arr):
return [g(x) for x in arr]
res = func(lambda x: x + 1, [1, 2, 3, 4])
print(res)
# [2, 3, 4, 5]