Python разбивает строку каждый n символов - PullRequest
0 голосов
/ 05 ноября 2019

Мне нужна помощь в поиске способа разбить строку на каждый 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 ]

1 голос
/ 05 ноября 2019

Вы можете сделать это довольно просто с помощью понимания списка;

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)]
0 голосов
/ 05 ноября 2019

Это будет повторять каждую букву в слове банан, от 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")

Надеюсь, это поможет

0 голосов
/ 05 ноября 2019

Они называются н-грамм .

Это должно работать:)

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']

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...