每个单词之间的空格数

时间:2012-01-14 19:34:10

标签: python numbers word

如何找到快速计算文本中每个单词之间间距的方法?

每个空格代表一个值,

示例:一个空格是字母'a',两个空格是字母'b'等。

文字

的例子

文字:

hello all  the   world 

hello和all之间的一个空格 - > 'a',所有和之间的两个空格 - > 'b',......

字 - > 'abc'

4 个答案:

答案 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