2011-08-23 23 views
7

我有一个数字元组让我们说nums =(1,2,3)。数量的长度不是恒定的。是否有使用字符串在Python格式化做这样的事情变量元组长度的Python字符串格式

>>>print '%3d' % nums 

将产生

>>> 1 2 3 

希望这不是一个重复的问题,但我不能找到它,如果它是的一种方式。 感谢

回答

7

试试这个:

print ('%3d'*len(nums)) % tuple(nums) 
2

你可以使用。加入():

nums = (1, 2, 3) 
"\t".join(str(x) for x in nums) # Joins each num together with a tab. 
1

这是不够用?

print ' '.join(str(x) for x in nums) 
+0

@agf:感谢用来捕获 - C orrected。 – viraptor

4

因为任何人的又说:

''.join('%3d' % num for num in nums) 
+0

看起来num-my ... – Gerrat

+1

编号num num num。 – nmichaels

-1
params = '%d' 
for i in range(1,15): 
    try: 
     newnum = (params)%nums 
    except: 
     params = params + ',%d' 
     next 
    print newnum 
+1

你甚至试图运行这个?提示:如果'nums'的大小大于1,它会崩溃。 – Maehler

+0

在Gentoo Linux,Python 2.7.2 ...上,它对我有用吗? – RightmireM

+0

现在看,我明白你的想法。但是,最后一行必须有缩进错误。代码在这里写入的方式,如果len(nums)> 1',它会崩溃,如果len(nums)== 1,它将打印14次。 – Maehler

1

使用 '' .format

nums = (1, 2, 3) 
print(''.join('{:3d} '.format(x) for x in nums)) 

生产

>>> 1 2 3 
相关问题