将列表传递给函数以充当多个参数

新手上路,请多包涵

在需要项目列表的函数中,如何在不出错的情况下传递 Python 列表项?

 my_list = ['red', 'blue', 'orange']
function_that_needs_strings('red', 'blue', 'orange') # works!
function_that_needs_strings(my_list) # breaks!

肯定有办法扩展列表,并立即传递函数 'red','blue','orange' 吗?我认为这称为“拆包”。

原文由 AP257 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 280
2 个回答

是的,您可以使用 *args (splat) 语法:

 function_that_needs_strings(*my_list)

其中 my_list 可以是任何可迭代的; Python 将遍历给定的对象并将每个元素用作函数的单独参数。

请参阅 调用表达式文档

还有一个等效的关键字参数,使用两颗星:

 kwargs = {'foo': 'bar', 'spam': 'ham'}
f(**kwargs)

并且有 等效的语法 用于在函数签名中指定包罗万象的参数:

 def func(*args, **kw):
    # args now holds positional arguments, kw keyword arguments

原文由 Martijn Pieters 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题