07 Июл 2023
2 мин
56

Разбивка строки на части каждые n символов в Python

Часто в работе программиста возникают задачи, связанные с обработкой и трансформацией строк. Одна из таких задач — разбиение строки на части каждые

Содержание

Часто в работе программиста возникают задачи, связанные с обработкой и трансформацией строк. Одна из таких задач — разбиение строки на части каждые n символов. Например, есть строка "abcdefgh", и требуется разбить её на части по два символа. Ожидаемый результат — это список ['ab', 'cd', 'ef', 'gh'].

В Python существует несколько способов разбиения строки на части. Первый и самый простой — использование срезов.

s = "abcdefgh"
n = 2
chunks = [s[i:i+n] for i in range(0, len(s), n)]
print(chunks)

В этом примере используется встроенная функция range(), которая генерирует последовательность чисел от 0 до длины строки с шагом n. Затем каждое число используется как индекс для среза строки.

Второй способ — это использование функции zip(), которая принимает в качестве аргументов итерируемые объекты и возвращает итератор кортежей, где первый элемент в каждом кортеже приходится от первого итерируемого аргумента, второй — от второго и так далее.

s = "abcdefgh"
n = 2
chunks = [''.join(a) for a in zip(*[iter(s)]*n)]
print(chunks)

В этом примере функция iter() преобразует строку в итератор, а затем этот итератор умножается на n, создавая список из n одинаковых итераторов. Затем функция zip() берет по одному элементу из каждого итератора и создает кортеж. Функция join() объединяет элементы кортежа в строку.

Выбор метода зависит от конкретной задачи и личных предпочтений программиста. Оба метода эффективны и быстры.

Добавить комментарий