python — Разбить строку на N символов (подстрок одинаковой длины) и занести в массив
Имеется строка из X символов, необходимо разбить её на N символов и забить значения по переменным, если в конечном значении отсеченная часть меньше, чем N, то мы её удаляем. На примере: Имеется строка London_is_the_capital_of_great_Britain. Её необходимо разбить на группы по 6 символов и каждую группу внести в отдельную строчную переменную (или в массив).
s='London_is_the_capital_of_great_Britain' [s[x:x+6] for x in range (0, len(s), 6)] ['London', '_is_th', 'e_capi', 'tal_of', '_great', '_Brita', 'in']
Здесь видно, что последняя группа содержит менее 6 символов, значит мы ее не должны заносить в отдельную переменную, а просто отсечь.
- python
- массивы
- строки
4
В itertools-recipes приведен пример реализации функции grouper
, которая принимает на вход итерируемый объект и число, обозначающее размер последовательностей, на которые будет разбит исходный объект.
zip
(комментарий jfs).def grouper(iterable, n): args = [iter(iterable)] * n return zip(*args) s = 'London_is_the_capital_of_great_Britain' l = [''.join(i) for i in grouper(s, 6)] print(l) ['London', '_is_th', 'e_capi', 'tal_of', '_great', '_Brita']
5
Чтобы выбросить группу, которая меньше по длине, в конце списка:
n = 6 chunks = [s[i - n:i] for i in range(n, len(s) + 1, n)]
Ещё (из @slippyk комментария):
chunks = [s[i:i + n] for i in range(0, len(s) - (len(s) % n), n)]
Более наглядно предел для i
можно записать как: n * (len(s) // n)
— выражение делает длину s
как будто кратной n
.
Если список не нужен:
chunks = map(''.join, zip(*[iter(s)] * n))
Первый вариант более читаем. Последний вариант работает не только для последовательностей. zip()
автоматически не кратный остаток выкидывает. Вот объяснение, что zip(*[iterator]*n) делает
.
Пример:
>>> s = 'London_is_the_capital_of_great_Britain' >>> print(*map(''.join, zip(*[iter(s)] * 6)), sep=' | ') London | _is_th | e_capi | tal_of | _great | _Brita
такой вариант работает и в python2 и в python3:
import re s = 'London_is_the_capital_of_great_Britain' n = 6 print(re.findall('.{%s}' % n, s))
результат:
['London', '_is_th', 'e_capi', 'tal_of', '_great', '_Brita']
aleksandr-barakin
Спасибо! Интересный и лаконичный способ.
Но можно немножко улучшить регулярку:
print(re.findall('(.{%s}|.+$)' % n, s))
тогда будет выдаваться и последняя неполная часть:
['London', '_is_th', 'e_capi', 'tal_of', '_great', '_Brita', 'in']
Зарегистрируйтесь или войдите
Регистрация через Google
Регистрация через Facebook
Регистрация через почту
Отправить без регистрации
Почта
Необходима, но никому не показывается
Отправить без регистрации
Необходима, но никому не показывается
Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки
Как разбить строку на символы в Python
Сейчас мы разберем, как в Python можно разбить строку на символы. В общем, все что нам нужно, это создать такую функцию (назовем ее, например, split()
Чтобы понять, о чем речь, возьмем конкретный пример. Допустим, у нас есть следующая строка: «Hdfs Tutorial». И мы хотим разбить ее на отдельные символы, используя язык Python. Давайте поищем способы, как лучше это сделать.
Вход: “Hdfs Tutorial” Результат: [‘H’, ‘d’, ‘f’, ‘s’, ‘ ‘, ‘T’, ‘u’, ‘t’, ‘o’, ‘r’, ‘i’, ‘a’, ‘l’]
Что же, начнем!
Мини-задача на разогрев: являются ли две строки анаграммами?
1. Определяемая пользователем функция
Здесь я создам функцию под названием split()
, которая принимает на вход один аргумент, например, нашу строку, и возвращает список всех символов, имеющихся в этой строке.
def split(s): return [char for char in s]
Сейчас мы создали собственную функцию под названием split()
, принимающую один аргумент — строку, которую мы хотим разбить на символы.
Теперь нам надо задать строку, которую мы хотим разбить на символы.
s = 'Hdfs Tutorial' print(s)
Результат
Hdfs Tutorial
Теперь просто вызовем нашу функцию, передав в нее только что определенную нами строку.
split(s)
Результат
[‘H’, ‘d’, ‘f’, ‘s’, ‘ ‘, ‘T’, ‘u’, ‘t’, ‘o’, ‘r’, ‘i’, ‘a’, ‘l’]
Вот и все! Это простейший способ разбить строку на символы в языке Python. Однако, как это обычно бывает в Python, есть еще несколько способов сделать то же самое. И сейчас мы по-быстрому разберем пару таких примеров.
2. Функция
list()
Мы можем использовать встроенную функцию list()
, которая сделает ровно то же самое.
s = 'Hdfs Tutorial' list(s)
Резльтат
[‘H’, ‘d’, ‘f’, ‘s’, ‘ ‘, ‘T’, ‘u’, ‘t’, ‘o’, ‘r’, ‘i’, ‘a’, ‘l’]
3.
Разбиение строки на символы с использованием циклаfor
for
, который мы использовали в теле функции split()
, не определяя самой функции. Этот способ рекомендован лишь для специального использования и, как правило, не подходит для промышленного применения.s = 'Hdfs Tutorial' [c for c in s]
Результат
[‘H’, ‘d’, ‘f’, ‘s’, ‘ ‘, ‘T’, ‘u’, ‘t’, ‘o’, ‘r’, ‘i’, ‘a’, ‘l’]
Заключение
Это было очень краткое руководство о том, как разбить строку на символы в Python. Мы обсудили три простых способа, как это сделать. Лично я предпочитаю первый метод, так как он дает гораздо больше гибкости.
Метод разделения строки Python
❮ Строковые методы
Пример
Разбить строку на список, где каждое слово является элементом списка:
txt = «добро пожаловать в джунгли»
x = txt.split()
print(x)
Попробуйте сами »
Определение и использование
Метод split()
разбивает строку на
список.
Вы можете указать разделитель, по умолчанию разделителем является любой пробел.
Примечание: Если указано значение maxsplit, список будет содержать указанное количество элементов плюс один .
Синтаксис
string .split( разделитель, maxsplit )
Значения параметров
Параметр | Описание |
---|---|
сепаратор | Дополнительно. Указывает разделитель, используемый при разделении строки. По умолчанию любой пробел является разделителем |
макссплит | Дополнительно. Определяет, сколько разбиений нужно сделать. Значение по умолчанию равно -1, т.е. «все вхождения» |
Другие примеры
Пример
Разделите строку, используя запятую и пробел в качестве разделителя:
txt = «привет, меня зовут Петр, мне 26 лет»
x = txt.split(«, «)
print(x)
Попробуйте сами »
Пример
Использовать решетку в качестве разделителя:
txt = «apple#banana#cherry#orange»
x = txt.split(«#»)
print(x)
Попробуйте сами »
Пример
Разбить строку на список, содержащий не более 2 элементов :
txt = «apple#banana#cherry#orange»
# установка параметра maxsplit
к 1, вернет список с 2 элементами!
x = txt. split(«#», 1)
print(x)
Попробуйте сами »
❮ Строковые методы
ВЫБОР ЦВЕТА
Лучшие учебники
Учебник по HTMLУчебник по CSS
Учебник по JavaScript
Учебник How To
Учебник по Python
Учебник по W3.CSS
Учебник по Bootstrap
Учебник по PHP
Учебник по Java
Учебник по C++
Учебник по jQuery
9003 Справочник по Tops
9003
Справочник по HTML
Справочник по CSS
Справочник по JavaScript
Справочник по SQL
Справочник по Python
Справочник по W3.CSS
Справочник по Bootstrap
Справочник по PHP
Цвета HTML
Справочник по Java
Справочник по Angular
Справочник по jQuery
Основные примеры
Примеры HTMLПримеры CSS
Примеры JavaScript
Примеры How To Примеры
Примеры SQL
Примеры Python
Примеры W3. CSS
Примеры Bootstrap
Примеры PHP
Примеры Java
Примеры XML
Примеры jQuery
4 | О
W3Schools оптимизирован для обучения и обучения. Примеры могут быть упрощены для улучшения чтения и обучения. Учебники, ссылки и примеры постоянно пересматриваются, чтобы избежать ошибок, но мы не можем гарантировать полную правильность всего содержания. Используя W3Schools, вы соглашаетесь прочитать и принять наши условия использования, куки-файлы и политика конфиденциальности.
Copyright 1999-2023 Refsnes Data. Все права защищены.
W3Schools работает на основе W3.CSS.
Строка Python | split () — GeeksforGeeks
Метод Python String split() в Python разделяет строку на список строк после разбиения данной строки на указанный разделитель.
Python String split() Синтаксис метода
Синтаксис: str.split(separator, maxsplit)
Параметры:
- разделитель 8. Строка разделяется по указанному разделителю. Если не указан, то любой пробел является разделителем.
- maxsplit : Это число, которое говорит нам разделить строку на максимальное заданное количество раз. Если он не указан, по умолчанию используется значение -1, что означает отсутствие ограничений.
Возвращает: Возвращает список строк после разбиения данной строки по указанному разделителю.
Пример метода Python String split()
Python3
|
Output:
['one', 'two', 'three']
Временная сложность: O(n)
Вспомогательный пробел: O(n)
Здесь мы используем Python String Функция split() для разделения разных строк на список, разделенный разными символами в каждом случае.
Python3
|
Вывод:
['гики', 'для', 'гики'] ['выродки', 'для', 'выродки'] ['выродки', 'для', 'выродки'] ['Ка', 'Ба', 'Са', 'Фа', 'Или']
Временная сложность: O(n)
Вспомогательное пространство: O(n)
Python3
|