010609162526
变成
01 06 09 16 25 26
没想出来该怎么做??
变成
01 06 09 16 25 26
没想出来该怎么做??
1
lopetver Oct 7, 2018
|
2
whoami9894 Oct 7, 2018 via Android
这也需要发贴问吗……
|
3
KIMMG Oct 7, 2018 import re
number = '010609162526' result = " ".join(re.findall(r'.{2}', number)) print(result) ---------------------------------------------- 回复区竟然不支持 makedown |
4
zhidian Oct 7, 2018
这玩意儿为啥要正则,搜搜 python 怎么 chunk 字符串不好吗?
|
5
Les1ie Oct 7, 2018
为什么大家都要用正则 ..
``` source = "0123456789" result = '' for order, ch in enumerate(source): result += ch if order % 2: result += ' ' print(result) ``` 虽然我这样写总感觉不是很优雅 |
6
whoami9894 Oct 7, 2018
>>> f = lambda a : ' '.join([a[i:i+2] for i in range(0, len(a), 2)])
>>> f("12343463463452523523534634643") '12 34 34 63 46 34 52 52 35 23 53 46 34 64 3' |
8
lcdtyph Oct 7, 2018 via iPhone
' '.join([a+b for a,b in zip(s[::2],s[1::2])])
奇数个字符就单独处理一下最后一个字符 或者用 izip_longest |
9
herozhang Oct 7, 2018
需求不是很明确,是从左向右,还是从右向左?
|
10
zzj0311 Oct 7, 2018 via Android
怎么说遍历插空格也行吧。。
|
11
xxx749 Oct 7, 2018 via Android
正则又怎么了?
|
12
mathzhaoliang Oct 7, 2018
一句话的事情:
return " ".join(s[i: i+2] for i in range(0, len(s), 2)) |
13
tairan2006 Oct 7, 2018 via Android
这题也太简单了。。
|
14
mathzhaoliang Oct 7, 2018
@mathzhaoliang 不对,长度奇数没有考虑进去
|
15
weyou Oct 8, 2018
@mathzhaoliang slice 对超过范围的 index 也是可以处理的,所以奇数长度是没有问题的
|
17
JerryV2 Oct 8, 2018
正则快? 比切片还快?
|
18
mathzhaoliang Oct 8, 2018
@weyou 是的,谢谢指出。
|
20
annielong Oct 8, 2018
关键正则这玩意儿是难者不会会者不难,
|
21
JerryV2 Oct 8, 2018
正则很好,但是请在合适的时候使用它
这么个简单的东西没必要上正则,不见得写正则会比写切片快,论执行速度,更是不可能比切片快 说正则快,不过是懒得思考,来个东西,正则能做,就用正则了 也许说的有点多了,不喜欢看的人就直接跳过好了 |
22
yufpga Oct 8, 2018
s = '010609162526'
result = [s[i:i+2] for i in range(0, len(s), 2)] |
23
gowk Oct 8, 2018 via Android 我觉得吧,不是我打击新人,这种能 google 出来的就不要发帖了,这都解决不了,你也不适合做程序员
|
24
wizardoz Oct 8, 2018
' '.join([a+b for a,b in zip(s[0::2], s[1::2])])
|
25
cbiqih Oct 8, 2018
import re
number = "123456789" result = re.findall("\d{1,2}", number) print(result) # ['12', '34', '56', '78', '9'] |
26
imn1 Oct 8, 2018
如果「没想到优雅写法」还好说
「没想出来」就很糟糕了,因为实在太多方法了,一个都没想到? |
27
xpresslink Oct 8, 2018 真正用 Python 的人思维方式应该是这样的:
>>> import textwrap >>> ' '.join(textwrap.wrap(text='010609162526', width=2)) '01 06 09 16 25 26' |
29
laqow Oct 8, 2018 via Android
这个是在黑这么简单的东西 python 怎么写性能都低的吧
|
30
a494836960 Oct 8, 2018
/(\w{2})(?!\b)/g
|
31
a494836960 Oct 8, 2018
js '1123123qweqw'.replace(/(\w{2})(?!\b)/g,'$1 ')
|
32
vimiix Oct 8, 2018
看样子是一组双色球号码~~
|
33
woodensail Oct 8, 2018
@JerryV2 正则本身就不是强调执行速度快,而是开发效率高。
|
34
woodensail Oct 8, 2018
一般的做法是这类需求正则方便做就先正则顶着,然后 profile 后针对热点区域的正则进行优化或换用其他方式实现。
|
35
JCZ2MkKb5S8ZX9pq Oct 8, 2018
我觉得切片比较好。不过提供个不同的思路玩玩
''.join([''.join(i) for i in zip(s, ['', ' '] * len(s))]) |
37
lsj8924 Oct 9, 2018
对不住老铁们了,我是一个正则患者。
 |
39
xiii1991 Oct 16, 2018 via iPhone
我们也可以直接手打着一串东西,然后直接 print ?
|