我想在Python中做类似这样的事情:
def f():
b = ['c', 8]
return 1, 2, b*, 3
我希望 f
返回元组 (1, 2, 'c', 8, 3)
。我找到了一种使用 itertools
然后跟上 tuple
的方法,但这不是很好,我想知道是否存在一种更优雅的方法来实现。
b
前面出现了展开运算符 *
,而不是在后面。return (1, 2, *b, 3)
# ^ ^^ ^
不过,这只适用于Python 3.5+(PEP 448)。另外你需要添加括号来避免语法错误。在旧版本中,请使用 +
来连接元组:
return (1, 2) + tuple(b) + (3,)
如果b
已经是一个元组而不是列表,您就不需要使用tuple
函数调用:
def f():
b = ('c', 8)
return (1, 2) + b + (3,)
def func():
list1 = [1,2,3]
return *list1
这将导致 SyntaxError: invalid syntax
。
解决方法是在返回值后面加上括号(
和)
以及逗号,
,告诉Python这个解压缩的列表是元组的一部分:
def func():
list1 = [1,2,3]
return (*list1,)
print(*list1)
是可能的,但我想返回格式化后的字符串或普通的字符串。 - Azhar Uddin Sheikh