2012-05-14 208 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

在Python的最新版本,你可以在字符串格式的佔位符省略號:

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

它工作在Python 2.7 。

+0

+1。但問題是(無論是在這裏還是在問題中),只有當字符串具有確切的長度時,它才能在非常特殊的情況下工作。 – pepr

+0

@pepr是的。我希望情況如此。否則會導致拋出異常。 :) – ovgolovin

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

OR

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

連接不起作用有兩個原因。 1)緊接''.join之後(有一個未關閉的[字符。2])當未關閉的[被移除時,會有一個編譯錯誤,說明join有一個參數。 – octopusgrabbus

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