如何找到快速计算文本中每个单词之间间距的方法?
每个空格代表一个值,
示例:一个空格是字母'a',两个空格是字母'b'等。
文字
的例子文字:
hello all the world
hello和all之间的一个空格 - > 'a',所有和之间的两个空格 - > 'b',......
字 - > 'abc'
答案 0 :(得分:3)
import re
import string
''.join(map(lambda x: string.lowercase[len(x) - 1], re.findall(r'\s+', 'hello all the world')))
# 'abc'
答案 1 :(得分:3)
对于娱乐价值 - 因为我不喜欢正则表达式但是喜欢itertools模块 - 另一种方法是知道你可以使用itertools.groupby来收集类似的对象:
>>> from string import lowercase
>>> from itertools import groupby
>>>
>>> s = 'hello all the world'
>>> counts = [(len(list(cpart))) for c,cpart in groupby(s) if c == ' ']
>>> counts
[1, 2, 3]
>>> values = [lowercase[count-1] for count in counts]
>>> values
['a', 'b', 'c']
>>> vs = ''.join(values)
>>> vs
'abc'
itertools.groupby通常非常有用。
答案 2 :(得分:0)
假设我说得对你好:
from string import lowercase
word = lowercase[:text.count(' ')]
答案 3 :(得分:0)
如果您指定了所需的输出格式,我可以更具体地说明这一点,但这应该可以帮助您顺利找到完整的解决方案。
import re
word_re = re.compile('(\W*)(\w+)'):
for match in word_re.finditer(text)
spaces, word = match.groups()
print len(spaces), word
注意:\w
代表“单词字符”而\ W则相反。根据您的确切问题,您可能希望使这些更具体。
参考:http://docs.python.org/library/re.html#regular-expression-syntax