2013-10-06 46 views
2

我有一个函数,它返回一大组整数值作为元组。例如:打印元组元素的更优雅/ Pythonic方式?

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 

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

我真的很喜欢做这样的事情:

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

有点像元组的拆包,以便它等同于:

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

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

我知道这是一个愚蠢的问题,因为我只是想摆脱括号,但我只是想知道是否有什么我失踪了。

+1

的'print'运营商默认添加序列元件之间的空间,因此第一种情况很可能是使用:'print [x for x in solution()]'实现。 –

回答

8

print(*solution())实际上可以有效的Python 2.7版,只是把:

from __future__ import print_function 

在你的文件的顶部。

您还可以通过元组迭代:如果你使用Python 3或以上import语句

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

for i in solution(): 
    print i, 

这相当于。

2

你还可以尝试:

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

通过eyquem在注释中提到的另一种可能性:

print repr(solution())[1:-1] 
+2

是的。我只是想提出''repr(solution())[1:-1]'' – eyquem

相关问题