2011-08-23 16 views
7

Ho una tupla di numeri diciamo nums = (1, 2, 3). La lunghezza di nums non è costante. C'è un modo di usare la formattazione delle stringhe in Python per fare qualcosa di simileformato di stringa python per lunghezze variabili di tupla

>>>print '%3d' % nums 

che produrrà

>>> 1 2 3 

Spero che non sia una domanda di ripetizione, ma io non riesco a trovarlo se lo è. Grazie

risposta

7

Prova questo:

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

si potrebbe usare .join():

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

È questo abbastanza per voi?

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

@agf: grazie per la cattura che - c orrected. – viraptor

4

Dal momento che nessuno dice ancora:

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

visualizza num-my ... – Gerrat

+1

Num 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

Hai provato a farlo? Suggerimento: si bloccherà se la dimensione di 'nums' è maggiore di 1. – Maehler

+0

Ha funzionato bene per me su Gentoo Linux, Python 2.7.2 ...? – RightmireM

+0

Quando lo guardo ora, vedo come stai pensando. Tuttavia, deve esserci un errore di indentazione sull'ultima riga. Il modo in cui il codice è scritto qui, si bloccherà se 'len (nums)> 1', e se' len (nums) == 1', stamperà il numero 14 volte. – Maehler

1

Utilizzando '' .format

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

produrre

>>> 1 2 3 
Problemi correlati