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_longest — может быть заменена на встроенный 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']

2

Зарегистрируйтесь или войдите

Регистрация через 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
Учебник по SQL
Учебник по 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

строка = "один, два, три"

words = string.split( ',' )

print (words)

Output:

 ['one', 'two', 'three'] 

Временная сложность: O(n)
Вспомогательный пробел: O(n)

Пример 1: Пример, демонстрирующий работу функции split()

Здесь мы используем Python String Функция split() для разделения разных строк на список, разделенный разными символами в каждом случае.

Python3

text = 'geeks for geeks'

 

print (text.split())

 

word = ' Вундеркиды, для гикс -гикс

Печать (Word.split ( ',' ))

Word = ‘Geeks’ : 9001 '2: 2 9003 : : : :

.0003

 

print (word.split( ':' ))

 

word = 'CatBatSatFatOr'

 

print (word. split ( 't' ))

Вывод:

 ['гики', 'для', 'гики']
['выродки', 'для', 'выродки']
['выродки', 'для', 'выродки']
['Ка', 'Ба', 'Са', 'Фа', 'Или'] 

Временная сложность: O(n)
Вспомогательное пространство: O(n)

Пример 2: Пример, демонстрирующий работу функции split() при указании maxsplit после разбора строки. Даже если возможно несколько разделений, будет выполнено максимальное количество разделений, определенное параметром maxsplit.

Python3

слово = 'выродки, для выродков, паван'

 

print (word.split( ', ' , 0 ))

 

print (word.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *