Форматировать все элементы списка - PullRequest
14 голосов
/ 04 мая 2010

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

theList=[1.343465432, 7.423334343, 6.967997797, 4.5522577]

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

[1.34, 7.42, 6.97, 4.55]

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

print "%.2f" % member

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

Ответы [ 6 ]

19 голосов
/ 04 мая 2010

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

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

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

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

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

print formattedList

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

7 голосов
/ 31 марта 2016

Для 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 '
4 голосов
/ 04 мая 2010

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

>>> 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]'
3 голосов
/ 04 мая 2010

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

l2 = map(lambda n: "%.2f" % n, l)
2 голосов
/ 05 июля 2017

Очень короткое решение с использованием "" .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']
0 голосов
/ 04 июня 2018

Попробуйте, если вам не нужно сохранять значения:

list = [0.34555, 0.2323456, 0.6234232, 0.45234234]
for member in list:
    form='{:.1%}'.format(member)
    print(form)

вывод:

34.6%
23.2%
62.3%
45.2%
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...