我需要帮助,找到每n个字符分割一个字符串的方法,但是我需要将其重叠以获取所有
一个例子应该更清楚:
我想从“ BANANA”转到“ BA”,“ AN”,“ NA”,“ AN”,“ NA”,“
到目前为止,这是我的代码
import string
import re
def player1(s):
pos1 = []
inP1 = "AN"
p = str(len(inP1))
n = re.findall()
for n in range(len(s)):
if s[n] == inP1:
pos1.append(n)
points1 = len(pos1)
return points1
if __name__ == '__main__':
= "BANANA"
答案 0 :(得分:1)
您可以通过列表理解非常简单地做到这一点;
input_string = "BANANA"
[input_string[i]+input_string[i+1] for i in range(0,len(input_string)-1)]
或每第n个字符:
index_range = 3
[''.join([input_string[j] for j in range(i, i+index_range)]) for i in range(0,len(input_string)-index_range+1)]
答案 1 :(得分:0)
这些被称为n-grams。
这应该可以工作:)
text = "BANANA"
n = 2
chars = [c for c in text]
ngrams = []
for i in range(len(chars)-n + 1):
ngram = "".join(chars[i:i+n])
ngrams.append(ngram)
print(ngrams)
输出:['BA','AN','NA,'AN','NA']
答案 2 :(得分:0)
这将遍历香蕉字中的每个字母,从0到6。
然后打印每个字母和下一个字母。有关单词何时到达最后一个字母的其他说明。
def splitFunc(word):
for i in range(0, len(word)-1):
if i < len(word):
print(word[i] + word[i+1])
else:
break
splitFunc("BANANA")
希望这会有所帮助