формат строки Python для переменной длины кортежа - PullRequest
8 голосов
/ 23 августа 2011

У меня есть кортеж чисел, скажем, nums = (1, 2, 3). Длина чисел не постоянна. Есть ли способ использовать форматирование строк в Python, чтобы сделать что-то вроде этого

>>>print '%3d' % nums

, что даст

>>>   1   2   3

Надеюсь, это не повторный вопрос, но я не могу найти его, если это так. Спасибо

Ответы [ 6 ]

7 голосов
/ 23 августа 2011

Попробуйте это:

print ('%3d'*len(nums)) % tuple(nums)
4 голосов
/ 23 августа 2011

Так как никто еще не сказал это:

''.join('%3d' % num for num in nums)
3 голосов
/ 23 августа 2011

Вы можете использовать .join ():

nums = (1, 2, 3)
"\t".join(str(x) for x in nums) # Joins each num together with a tab.
2 голосов
/ 01 июля 2016

Используя '' .format

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

, получая

>>>  1  2  3
1 голос
/ 23 августа 2011

Вам этого достаточно?

print ' '.join(str(x) for x in nums)
0 голосов
/ 07 июня 2012
params = '%d'
for i in range(1,15):
    try:
        newnum = (params)%nums
    except:
        params = params + ',%d'
        next
    print newnum
...