Использование мини-языка спецификации формата Python для выравнивания поплавков

Я читал, что могу использовать мини-язык спецификации формата Python, чтобы иметь больший контроль над отображением строк. . Однако мне трудно понять, как использовать его для отображения поплавков, выровненных по десятичной точке.

Например, предположим, что у меня есть три следующих списка:

job_IDs = ['13453', '123', '563456'];
memory_used = [30, 150.54, 20.6];
memory_units = ['MB', 'GB', 'MB'];

Я хотел бы выполнить итерацию по этим трем спискам и распечатать

Задание 13453: 30 МБ.
Работа 123: 150,54 МБ
Задание 563456: 20,6 ГБ

До сих пор я пробовал:

for i in range(len(jobIDs)):
   my_str = "{item:15}{value:6} {units:3}".format( 
   item='Job ' + job_IDs[i] + ':' , value=str(memories[i]),units=memory_units[i]);

   print my_str

который печатает:

Работа 13453: 30 МБ
Работа 123: 150,54 МБ
Задание 563456: 20,6 ГБ
 

, что почти правильно, но не выравнивает числа с плавающей запятой вокруг десятичной точки. Как я могу использовать Python Мини-язык спецификации формата, чтобы сделать это так, как мне нужно?

17
задан Amelio Vazquez-Reina 4 March 2012 в 01:45
поделиться