簡體   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