用Python解压缩列表?

用Python解压缩列表?

我认为‘解包’可能是错误的词汇-抱歉,因为我相信这是一个重复的问题。

我的问题很简单:在一个期望一个项目列表的函数中,如何在不出错的情况下传递一个Python列表项?

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

当然,必须有一种方法来扩展列表,并传递函数。'red','blue','orange'骑着马?


互换的青春
浏览 969回答 3
3回答

慕丝7291255

function_that_needs_strings(*my_list) # works!你可以在这里读到所有关于它的东西。

慕标5832272

是的,你可以使用*args语法: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

守着一只汪

因为Python3.5可以解压无限数量的listS.Pep 448-附加解包泛化所以这是可行的:a = ['1', '2', '3', '4']b = ['5', '6']function_that_needs_strings(*a, *b)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python