2011-08-23 24 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 
相關問題