2016-06-09 40 views
2

我试图做这样的事情在python:如何在Python中返回一个解压缩的列表?

def f(): 
    b = ['c', 8] 
    return 1, 2, b*, 3 

,我想f返回元组(1, 2, 'c', 8, 3)。我找到了一种方法来使用itertools然后tuple,但这不是很好,我想知道是否存在一个优雅的方式来做到这一点。

回答

6

拆包运营商*出现在b之前,而不是之后。

return (1, 2, *b, 3) 
# ^ ^^ ^

然而,这只会在Python的工作3.5+(PEP 448),并且还需要添加括号以防止SyntaxError错误。在旧版本中,使用+来连接的元组:

return (1, 2) + tuple(b) + (3,) 

你不需要tuple呼叫如果b已经是一个元组,而不是一个列表:

def f(): 
    b = ('c', 8) 
    return (1, 2) + b + (3,) 
相关问题