python中带空格的文本滑动窗口?

2024-04-19 15:24:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个文本,并希望使用Rolling or sliding window iterator in Python中的代码在其上传递一个滑动窗口,并且文本中有空格,因此,如果n==4,则不是它当前的工作方式

input = 'Hello my name is Steven'

output = ['hell','ello','llo ','lo m','o my',' my ','my n',...]

我希望它基本上忽略空格,因此输出如下所示:

^{pr2}$

我该怎么做呢?在


Tags: or代码namein文本helloinputis
2条回答

您可以过滤上述输出并减少所需的输出。在

print [i.strip(' ') for i in output if not i.strip(' ').count(' ')]

输出:

^{pr2}$

对你提到的帖子中接受的答案稍加修改(如果是在window()中添加的话),然后在每个项目中应用该函数,就可以得到你想要的结果。在

可以看到带有工作示例的代码here

from itertools import islice

def window(seq, n=4):
    if len(seq)<n:
      yield seq
    "Returns a sliding window (of width n) over data from the iterable"
    "   s -> (s0,s1,...s[n-1]), (s1,s2,...,sn), ...                   "
    it = iter(seq)
    result = tuple(islice(it, n))
    if len(result) == n:
        yield result    
    for elem in it:
        result = result[1:] + (elem,)
        yield result

result = []
input = 'Hello my name is Steven'
for item in input.split():
  result.extend(list(window(item)))

result = map(lambda x: ''.join(x), result)
print result

相关问题 更多 >