MST
星途 面试题库

面试题:Python函数参数解包相关问题

在Python中,假设有函数`def add_numbers(a, b, c): return a + b + c`,现在有一个列表`nums = [1, 2, 3]`和一个字典`nums_dict = {'a': 1, 'b': 2, 'c': 3}`,请分别使用列表和字典的解包方式调用这个函数,并解释参数解包的原理。
44.5万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
  1. 使用列表解包调用函数:
def add_numbers(a, b, c):
    return a + b + c
nums = [1, 2, 3]
result1 = add_numbers(*nums)
print(result1)
  1. 使用字典解包调用函数:
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中的元素123会依次对应函数add_numbers的参数abc。这就相当于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)