作者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://webptt.com/cn.aspx?n=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
1F:推 IKAFIRE: '.'.join([s.lstrip('0') for s in textwrap.wrap(x,3)]) 04/16 05:52
2F:→ penguin7272: 如果要让 000 变成 0 可以用 str(int(s)) 04/16 05:58
3F:推 tiefblau: 连范例都给错= = 字串长度一定是三的倍数吗 会不会有 04/16 13:04
4F:→ tiefblau: 101.1.1.1 这种0在中间的情况? 04/16 13:04
※ 编辑: slv922 (123.194.28.177), 04/16/2016 14:28:38
5F:→ slv922: 谢谢!已修正 04/16 14:28
6F:→ slv922: 会有,刚试了I大的方法没问题喔!感谢I大! 04/16 14:33
7F:推 IKAFIRE: 最好把lstrip改成二楼的做法,要不然000会变空字串 04/16 15:23