222 我认为“解压”可能是错误的词汇-抱歉,我确定这是一个重复的问题。 我的问题很简单:在一个需要项目列表的函数中,如何在不出错的情况下传递Python列表项目? my_list = ['red', 'blue', 'orange'] function_that_needs_strings('red', 'blue', 'orange') # works! function_that_needs_strings(my_list) # breaks! 当然,必须有一种方法来扩展列表,并'red','blue','orange'在蹄上传递函数吗? python list argument-passing — AP257 source
32 是的,您可以使用*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 — 马亭皮特斯 source
14 从Python 3.5开始,您可以解压缩无限量的lists。 PEP 448-其他拆包概述 所以这将工作: a = ['1', '2', '3', '4'] b = ['5', '6'] function_that_needs_strings(*a, *b) — vishes_shell source 1 如何使用python 2.7或3.4做同样的事情? — answer17年 1 @answerSeeker效率不高,但是function_that_needs_strings(*(a+b)) — 杜鹃花(