将列表传递给函数作为多个参数[重复]
- 2024-11-29 08:42:00
- admin 原创
- 146
问题描述:
在一个需要项目列表的函数中,如何传递 Python 列表项而不出现错误?
my_list = ['red', 'blue', 'orange']
function_that_needs_strings('red', 'blue', 'orange') # works!
function_that_needs_strings(my_list) # breaks!
肯定有办法扩展列表,并'red','blue','orange'
即时传递函数吧?我认为这就叫做“解包”。
解决方案 1:
function_that_needs_strings(*my_list) # works!
你可以在这里阅读所有相关内容:解包参数列表 - Python 教程
解决方案 2:
是的,您可以使用*args
(splat)语法:
function_that_needs_strings(*my_list)
wheremy_list
可以是任何可迭代对象;Python 将循环给定的对象并将每个元素作为函数的单独参数。
参见调用表达式文档。
还有一个等效的关键字参数,使用两个星号:
kwargs = {'foo': 'bar', 'spam': 'ham'}
f(**kwargs)
并且在函数签名中指定捕获所有参数的等效语法:
def func(*args, **kw):
# args now holds positional arguments, kw keyword arguments
解决方案 3:
从 Python 3.5 开始,您可以解压无限数量的list
s。
PEP 448 - 附加解包概括
因此这将起作用:
a = ['1', '2', '3', '4']
b = ['5', '6']
function_that_needs_strings(*a, *b)
相关推荐
热门文章
项目管理软件有哪些?
热门标签
云禅道AD