2016-12-05 15 views
0

У меня есть определенный ключ словаря и его значения, которые я хочу напечатать в строке определенным образом. Ключ и его значения является:Добавление нулей после десятичной точки

'HUF': (315.89, 307.09) 

и желаемый результат:

HUF....315.8900....307.0900 

До сих пор я использовал следующий код:

'{i:.<8}{e[0]:.<3f}{e[1]:.>12}'.format(i=i, e=e) 

, в котором "я" представляет ключ и «e [0]» и «e [1]» представляют значения. Но когда я запускаю этот код выход:

HUF.....315.890000......307.09 

Есть ли способ, чтобы напечатать первый номер без двух добавленных нулей?

ответ

1

Дано:

>>> i='HUF' 
>>> e=(315.89, 307.09) 

Try:

>>> '{i:.<8}{e[0]:.<.04f}{e[1]:.>12.04f}'.format(i=i, e=e) 
'HUF.....315.8900....307.0900' 

Вы также можете отделить ширину поля форматирования от поплавка форматирования, как так:

>>> '{:.<8}{:.<s}{:.>12}'.format(i, *[format(x, '.04f') for x in e]) 
'HUF.....315.8900....307.0900' 
+0

Спасибо очень много. Но ваш код также добавляет два нуля во второе число. – bananamanana

+0

Вы отправили 'HUF .... 315.8900 .... 307.0900' как хотите. Каков желаемый результат? – dawg

+0

О, прошу прощения. Ваш код работает отлично :) – bananamanana