繁体   English   中英

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

[英]Sliding window on text with spaces in python?

我有一个文本,并希望使用Rolling中的代码或在Python中滑动窗口迭代器传递一个滑动窗口,我在文本中有空格,所以如果n == 4,它不是当前的工作方式,

input = 'Hello my name is Steven'

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

我希望它基本上忽略空格,所以输出看起来像这样:

output = ['hell','ello','my','name','is','Stev','teve','even']

我该怎么做呢?

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

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

输出:

['hell','ello','my','name','is','Stev','teve','even']

稍微修改(如果在窗口()中添加)您提到的帖子中接受的答案,然后在每个项目中应用该功能可以产生您想要的。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM