Примеры кода Python: получение всех подстрок длины k

Вот несколько методов Python для получения всех подстрок длины k из заданной строки:

Метод 1: использование цикла

def get_substrings(string, k):
    substrings = []
    for i in range(len(string) - k + 1):
        substring = string[i:i+k]
        substrings.append(substring)
    return substrings
string = "Hello, World!"
k = 3
substrings = get_substrings(string, k)
print(substrings)

Выход:

['Hel', 'ell', 'llo', 'lo,', 'o, ', ', W', ' Wo', 'Wor', 'orl', 'rld', 'ld!']

Метод 2: использование понимания списка

def get_substrings(string, k):
    return [string[i:i+k] for i in range(len(string) - k + 1)]
string = "Hello, World!"
k = 3
substrings = get_substrings(string, k)
print(substrings)

Выход:

['Hel', 'ell', 'llo', 'lo,', 'o, ', ', W', ' Wo', 'Wor', 'orl', 'rld', 'ld!']

Метод 3: использование функции windowиз модуля more_itertools

from more_itertools import windowed
def get_substrings(string, k):
    return list(windowed(string, k))
string = "Hello, World!"
k = 3
substrings = get_substrings(string, k)
print(substrings)

Выход:

[('H', 'e', 'l'), ('e', 'l', 'l'), ('l', 'l', 'o'), ('l', 'o', ','), ('o', ',', ' '), (',', ' ', 'W'), (' ', 'W', 'o'), ('W', 'o', 'r'), ('o', 'r', 'l'), ('r', 'l', 'd'), ('l', 'd', '!')]