2010-05-04 2 views
10

Я хочу напечатать список чисел, но я хочу отформатировать каждого члена списка перед его печатью. Например,Формат всех элементов списка

theList=[1.343465432, 7.423334343, 6.967997797, 4.5522577] 

Я хочу следующий вывод печататься дал приведенный выше список в качестве входного сигнала:

[1.34, 7.42, 6.97, 4.55] 

Для любого одного члена в списке, я знаю, что могу отформатировать его с помощью

print "%.2f" % member 

Есть ли команда/функция, которая может сделать это для всего списка? Я могу написать один, но задавался вопросом, существует ли он уже.

ответ

15

Если вы просто хотите, чтобы напечатать номера вы можете использовать простой цикл:

for member in theList: 
    print "%.2f" % member 

Если вы хотите сохранить результат для последующего использования вы можете использовать список понимание:

formattedList = ["%.2f" % member for member in theList] 

You может затем распечатать этот список, чтобы получить результат, как в вашем вопрос:

print formattedList 

Обратите внимание, что % устарел. Если вы используете Python 2.6 или новее, предпочитаете использовать format.

+0

спасибо! Отлично. Я еще не знаю, как использовать 'format'. Но научится. – Curious2learn

3

Вы можете использовать список понимание, присоединиться и некоторые строки манипуляции, следующим образом:

>>> theList=[1.343465432, 7.423334343, 6.967997797, 4.5522577] 
>>> def format(l): 
...  return "["+", ".join(["%.2f" % x for x in l])+"]" 
... 
>>> format(theList) 
'[1.34, 7.42, 6.97, 4.55]' 
2

Вы можете использовать функцию карты

l2 = map(lambda n: "%.2f" % n, l) 
4

Для Python 3.5.1, вы можете использовать:

>>> theList = [1.343465432, 7.423334343, 6.967997797, 4.5522577] 
>>> strFormat = len(theList) * '{:10f} ' 
>>> formattedList = strFormat.format(*theList) 
>>> print(formattedList) 

результат:

' 1.343465 7.423334 6.967998 4.552258 ' 
2

Очень короткое решение с использованием "" .format() и выражение генератора:

>>> theList=[1.343465432, 7.423334343, 6.967997797, 4.5522577] 

>>> print(['{:.2f}'.format(item) for item in theList]) 

['1.34', '7.42', '6.97', '4.55'] 
Смежные вопросы