- 使用列表解包调用函数:
def add_numbers(a, b, c):
return a + b + c
nums = [1, 2, 3]
result1 = add_numbers(*nums)
print(result1)
- 使用字典解包调用函数:
def add_numbers(a, b, c):
return a + b + c
nums_dict = {'a': 1, 'b': 2, 'c': 3}
result2 = add_numbers(**nums_dict)
print(result2)
参数解包原理
- 列表解包(
*
操作符):
当使用*
对列表进行解包时,列表中的元素会按照顺序依次作为位置参数传递给函数。例如add_numbers(*nums)
,列表nums
中的元素1
、2
、3
会依次对应函数add_numbers
的参数a
、b
、c
。这就相当于add_numbers(1, 2, 3)
。
- 字典解包(
**
操作符):
当使用**
对字典进行解包时,字典的键名必须与函数的参数名匹配,字典的值会作为关键字参数传递给函数。例如add_numbers(**nums_dict)
,字典nums_dict
中键'a'
对应的值1
会传递给参数a
,键'b'
对应的值2
会传递给参数b
,键'c'
对应的值3
会传递给参数c
。这就相当于add_numbers(a = 1, b = 2, c = 3)
。