2

我有一个函数将大量整数值作为元组返回。例如:

def solution():
    return 1, 2, 3, 4 #etc.

我想优雅地打印没有元组表示的解决方案。(即数字周围的括号)。

我尝试了以下两段代码。

print ' '.join(map(str, solution())) # prints 1 2 3 4
print ', '.join(map(str, solution())) # prints 1, 2, 3, 4

它们都可以工作,但看起来有些难看,我想知道是否有更好的方法来做到这一点。有没有办法“解包”元组参数并将它们传递给printPython 2.7.5 中的语句?

我真的很想做这样的事情:

print(*solution()) # this is not valid syntax in Python but I wish it was

有点像元组解包,所以它相当于:

print sol[0], sol[1], sol[2], sol[3] # etc.

除了没有丑陋的索引。有没有办法做到这一点?

我知道这是一个愚蠢的问题,因为我只是想摆脱括号,但我只是想知道我是否遗漏了一些东西。

4

2 回答 2

8

print(*solution())实际上可以在 python 2.7 上有效,只需输入:

from __future__ import print_function

在文件的顶部。

您还可以遍历元组:

for i in solution():
    print i,

这相当于:

for i in solution():
    print(i, end= ' ')

如果你曾经使用过 Python 3 或上面的 import 语句。

于 2013-10-06T23:21:27.177 回答
2

你也可以试试:

print str(solution()).strip('()')

eyquem在评论中指出的另一种可能性:

print repr(solution())[1:-1]
于 2013-10-06T23:25:06.883 回答