所以我有这个字符串。
6#666#665533999
我想将其解析为多个小字符串(或直到字符更改)并忽略
#
这样我就可以替换 6 = M or 666 = O or 9 = W
就像手机的拨号盘一样。6#666#665533999 -> 6, 666, 66, 55, 33, 999
所以我使用了
split('#')
删除 #
的方法并且不知道接下来要做什么。我尝试过蛮力方法,可以在一定程度上解决它,但是有没有更简单或更优雅的解决方案?
最佳答案
使用 itertools.groupby
:
>>> c = "6#666#665533999"
>>> ["".join(g) for k, g in groupby(c) if k != '#']
['6', '666', '66', '55', '33', '999']
然后有一个字典,将这些集合中的每一个映射到拨号盘中的一个字符。
cmap = {'77': 'Q', '9999': 'Z'} # And so forth..
关于python - Python 中字符更改时拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23255222/