2012-05-14 5 views
1

, c = '32486784298'하면 형식 문자열 파이썬

다음 '{0}{1}{2}.{3}{4}{5}.{6}{7}{8}-{9}{10}'.format(*c)

인쇄 '324.867.842-98'.

가장 간단한 방법은 없나요? 파이썬의 최신 버전은 문자열 형식의 자리에 번호를 생략 할 수 있습니다에서

+6

뭘 하시겠습니까? 코드의 정확한 라인을 실행하는 것이 유일한 목표라면 아마도 가장 간단한 방법 일 것입니다. 그렇지 않으면, 당신이하려는 일반적인 일은 무엇입니까? – murgatroid99

+0

이 링크는 도움이 될 수 있습니다 : http://stackoverflow.com/questions/1823058/how-to-print-number-with-commas-as-thousands-separators-in-python-2-x – BluePeppers

답변

3

(아무 데프하시기 바랍니다 포함) :

>>> '{}{}{}.{}{}{}.{}{}{}-{}{}'.format(*c) 
'324.867.842-98' 

그것은 파이썬 2.7에서 작동 .

+0

+1. 그러나 문제는 (여기와 질문 모두에서) 문자열이 정확한 길이 일 때 아주 특별한 상황에서만 작동한다는 것입니다. – pepr

+0

@pepr 예. 그리고 나는 이것이 사실 일 것이라고 희망한다. 그렇지 않으면 예외가 throw됩니다. :) – ovgolovin

0
''.join([c[0:3],'.',c[3:6],'.',c[6:9],'-',c[9:11]) 

또는

c[0:3]+'.'+c[3:6]+'.'+c[6:9]+'-'+c[9:11] 
+1

결합이 작동하지 않습니다 두 가지 이유가 있습니다. 1) .join 바로 다음 (닫혀 있지 않은 [문자 2]가 있습니다.) 닫히지 않은 [가 제거되면, 컴파일 오류는 하나의 인수를 취한다는 것을 나타냅니다. – octopusgrabbus

-1
'%s.%s.%s-%s' % tuple(c[i:j] for i, j in ((0, 3), (3, 6), (6, 9), (9, 11)))