Python每n个字符分割字符串

时间:2019-11-05 13:41:47

标签: python-3.x string

我需要帮助,找到每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"

3 个答案:

答案 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")

希望这会有所帮助