[問題] 字串處理格式化輸出

看板Python作者 (詹姆士)時間9年前 (2016/04/16 04:25), 9年前編輯推噓3(304)
留言7則, 4人參與, 最新討論串1/1
假設有一字串是 003045134011 要怎麼讓他變成 3.45.134.11 輸出 ? 在 Perl 有看到 下面這種寫法: $str = join '.', map {int $_} @{[split /(\d{3})/, $str]}[1,3,5,7]; 有點像是IP的格式,每三位一組去掉0,用 "." 分隔 希望有最快速的方法一行程式碼解決 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.194.28.177 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1460751959.A.D9D.html ※ 編輯: slv922 (123.194.28.177), 04/16/2016 04:27:48 ※ 編輯: slv922 (123.194.28.177), 04/16/2016 04:28:58

04/16 05:52, , 1F
'.'.join([s.lstrip('0') for s in textwrap.wrap(x,3)])
04/16 05:52, 1F

04/16 05:58, , 2F
如果要讓 000 變成 0 可以用 str(int(s))
04/16 05:58, 2F

04/16 13:04, , 3F
連範例都給錯= = 字串長度一定是三的倍數嗎 會不會有
04/16 13:04, 3F

04/16 13:04, , 4F
101.1.1.1 這種0在中間的情況?
04/16 13:04, 4F
※ 編輯: slv922 (123.194.28.177), 04/16/2016 14:28:38

04/16 14:28, , 5F
謝謝!已修正
04/16 14:28, 5F

04/16 14:33, , 6F
會有,剛試了I大的方法沒問題喔!感謝I大!
04/16 14:33, 6F

04/16 15:23, , 7F
最好把lstrip改成二樓的做法,要不然000會變空字串
04/16 15:23, 7F
文章代碼(AID): #1N4KvNsT (Python)
文章代碼(AID): #1N4KvNsT (Python)