Вот несколько методов 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', '!')]