首页 > 解决方案 > 获取文本中“x”个单词的组

问题描述

假设我有一个字符串

s = 'Hello world, I am Foo. I like dogs'

我想通过这个字符串解析并提取成组的单词x。假设x = 3,我的输出应该是:

out = ['Hello world, I', 'world, I am', 'I am Foo.', 'am Foo. I', 'Foo. I like', 'I like dogs']

有没有办法做到这一点?我尝试了这段代码,但它非常糟糕。

    sss = s.split()
    x = 3
    for i, word in enumerate(sss):
        for j in range(x):
            extract = sss[j+i:x+j]
            print(extract)

out: ['Hello', 'world,', 'I']
['world,', 'I', 'am']
['I', 'am', 'Foo.']
['world,', 'I']
['I', 'am']
['am', 'Foo.']
['I']
['am']
['Foo.']
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]

标签: pythonstring

解决方案


s = 'Hello world, I am Foo. I like dogs'

words = s.split()
x = 3
results = [
    ' '.join(words[i:i + x])
    for i in range(len(words) - x + 1)
]
print(results)

输出:

['Hello world, I', 'world, I am', 'I am Foo.', 'am Foo. I', 'Foo. I like', 'I like dogs']

推荐阅读