当我们在Python中进行函数调用时,经常会使用运算符来展开可迭代对象。不过,我们也可以使用运算符将一个可迭代对象映射到多个参数上。这就是Python中的星号映射(starred expression)。
星号映射的使用方法
星号映射可以用在函数调用中,将一个可迭代对象解包成多个位置参数传给函数。例子如下:
def foo(a, b, c):
print(a, b, c)
lst = [1, 2, 3]
foo(*lst)
以上例子等价于如下代码:
def foo(a, b, c):
print(a, b, c)
lst = [1, 2, 3]
foo(lst[0], lst[1], lst[2])
我们将lst作为参数传递给了foo函数,并使用*运算符将其解包成3个位置参数。这样,我们就可以方便的将一个可迭代对象作为多个参数传递给函数。
此外,星号运算符还可以用来解包关键字参数(keyword arguments)。例如:
def foo(a, b, c):
print(a, b, c)
dct = {'a': 1, 'b': 2, 'c': 3}
foo(**dct)
以上例子等价于如下代码:
def foo(a, b, c):
print(a, b, c)
dct = {'a': 1, 'b': 2, 'c': 3}
foo(a=dct['a'], b=dct['b'], c=dct['c'])
我们使用**运算符将dct解包成3个关键字参数传递给了foo函数。这样,我们就可以方便的将一个字典作为多个关键字参数传递给函数。
星号映射小结
星号映射提供了一种便捷的方式,将可迭代对象解包成多个参数传递给函数。我们可以通过在函数调用时,使用运算符将可迭代对象解包为位置参数,也可以使用*运算符将可迭代对象解包为关键字参数。这使得我们可以更加灵活和方便地使用函数。
希望以上介绍对您有所帮助!