作者slv922 (詹姆士)
看板Python
標題[問題] 字串處理格式化輸出
時間Sat Apr 16 04:25:57 2016
假設有一字串是 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
推 IKAFIRE: '.'.join([s.lstrip('0') for s in textwrap.wrap(x,3)]) 04/16 05:52
→ penguin7272: 如果要讓 000 變成 0 可以用 str(int(s)) 04/16 05:58
推 tiefblau: 連範例都給錯= = 字串長度一定是三的倍數嗎 會不會有 04/16 13:04
→ tiefblau: 101.1.1.1 這種0在中間的情況? 04/16 13:04
※ 編輯: slv922 (123.194.28.177), 04/16/2016 14:28:38
→ slv922: 謝謝!已修正 04/16 14:28
→ slv922: 會有,剛試了I大的方法沒問題喔!感謝I大! 04/16 14:33
推 IKAFIRE: 最好把lstrip改成二樓的做法,要不然000會變空字串 04/16 15:23