2010-05-04 2 views
10

숫자 목록을 인쇄하고 싶지만 인쇄하기 전에 각 목록의 서식을 지정하고 싶습니다. 예를 들어 , 목록의 모든 요소 서식 지정

theList=[1.343465432, 7.423334343, 6.967997797, 4.5522577] 

I 원하는 입력으로서 상기에서 주어진 인쇄 된 다음 출력 :

을 이용하여리스트의 어느 한 부재

[1.34, 7.42, 6.97, 4.55] 

가 나는 포맷 수있어

print "%.2f" % member 

전체 목록에 대해이를 수행 할 수있는 명령/기능이 있습니까? 나는 하나를 쓸 수 있지만 이미 존재하는지 궁금해하고있었습니다.

답변

15

그냥 번호를 인쇄 할 경우 간단한 루프를 사용할 수 있습니다

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

당신에게 : 나중에 당신은 지능형리스트를 사용할 수에 대한 결과를 저장하려면

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

을 이 목록을 인쇄하여 질문과 같이 출력을 얻을 수 있습니다.

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

당신은 파이썬 3.5.1지도 기능

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

을 사용할 수 있습니다, 당신은 사용할 수 있습니다

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

결과는 다음과 같습니다

,536,913,632 10
' 1.343465 7.423334 6.967998 4.552258 ' 
2

A "".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']