Python

Как разбить строки в Python

Как разбить строки в Python
В этой статье объясняется, как разделить строки в Python с помощью методов «split ()» и «partition ()». Эти методы особенно полезны, если вы хотите преобразовать предложение или группу слов в анализируемые и повторяемые типы Python. Все примеры кода в этом руководстве протестированы на Python версии 3.8.6.

Метод разделения

Метод split () может использоваться для разделения слов с использованием указанного пользователем разделителя. Он возвращает список разделенных слов без разделителя. Если разделитель не указан пользователем, пробел (один или несколько) используется в качестве единственного разделителя.

Например, приведенный ниже код вернет в качестве вывода «['Linux', 'Hint']»:

text = "Подсказка для Linux"
текст.расколоть()

Приведенный ниже код вернет «['LinuxHint', 'com']» в качестве вывода, когда «.»Используется как разделитель:

text = "LinuxHint.com "
текст.расколоть(".”)

Разделитель не обязательно должен состоять из одного символа. Метод split принимает два аргумента:

Оба эти аргумента необязательны. Как упоминалось выше, если аргумент «сеп» не указан, пробел используется в качестве разделителя для разделения. Аргумент «maxsplit» имеет значение по умолчанию «-1» и по умолчанию разбивает все вхождения. Рассмотрим код ниже:

text = "LinuxHint.co.нас"
текст.расколоть(".”)

Он вернет «['LinuxHint', 'co', 'us']» в качестве вывода. Если вы хотите остановить разделение при первом появлении разделителя, укажите «1» в качестве аргумента «maxsplit».

text = "LinuxHint.co.нас"
текст.расколоть(".”, 1)

Приведенный выше код вернет «['LinuxHint', 'co.us '] »в качестве вывода. Просто укажите количество вхождений, в которых вы хотите, чтобы процесс разделения остановился, в качестве второго аргумента.

Обратите внимание, что если есть последовательные разделители, для оставшихся разделителей после первого разделения будет возвращена пустая строка (когда аргумент «maxsplit» не используется):

text = "LinuxHint… com"
текст.расколоть(".")

Приведенный выше код вернет «['LinuxHint',», 'com'] »в качестве вывода. Если вы хотите удалить пустые строки из результирующего списка, вы можете использовать следующий оператор понимания списка:

text = "LinuxHint… com"
результат = текст.расколоть(".")
result = [элемент для элемента в результате, если элемент !знак равно
печать (результат)

Вы получите «['LinuxHint', 'com']» в качестве вывода после выполнения приведенного выше примера кода.

Обратите внимание, что метод split () перемещается слева направо для разделения строк на слова. Если вы хотите разделить строку справа налево, используйте вместо этого «rsplit ()». Его синтаксис, использование и аргументы точно такие же, как у метода split ().

Если при использовании методов «split ()» или «rsplit ()» в строке не обнаружен разделитель, исходная строка возвращается как единственный элемент списка.

Метод разделения

Метод «partition ()» может использоваться для разделения строк, и он работает идентично методу «split ()» с некоторыми отличиями. Наиболее заметным отличием является то, что он сохраняет разделитель и включает его как элемент в результирующий кортеж, содержащий разделенные слова. Это особенно полезно, если вы хотите разделить строку на итерируемый объект (в данном случае кортеж) без удаления каких-либо исходных символов. Рассмотрим код ниже:

text = "LinuxHint.com "
результат = текст.раздел (".")
печать (результат)

Приведенный выше пример кода вернет «('LinuxHint', '.',' com ') ”в качестве вывода. Если вы хотите, чтобы результат был типа списка, используйте вместо этого следующий пример кода:

text = "LinuxHint.com "
результат = список (текст.раздел ("."))
печать (результат)

Вы должны получить «['LinuxHint', '.',' com '] »в качестве вывода после выполнения приведенного выше примера кода.

Метод partition () принимает только один аргумент, называемый sep. Пользователи могут указать разделитель любой длины. В отличие от метода split (), этот аргумент является обязательным, поэтому вы не можете пропустить разделитель. Однако вы можете указать пробел в качестве разделителя.

Обратите внимание, что метод разделения останавливается при первом появлении разделителя. Поэтому, если ваша строка содержит несколько разделителей, метод partition () проигнорирует все другие вхождения. Вот пример, иллюстрирующий это:

text = "LinuxHint.co.нас"
результат = список (текст.раздел ("."))
печать (результат)

Пример кода выдаст «['LinuxHint', '.',' co.us '] »в качестве вывода. Если вы хотите разделить все вхождения разделителя и включить разделитель в окончательный список, возможно, вам придется использовать шаблон «Регулярное выражение» или «Регулярное выражение». В примере, упомянутом выше, вы можете использовать шаблон RegEx следующим образом:

импортный ре
text = "LinuxHint.co.нас"
результат = re.расколоть("(\.) ", текст)
печать (результат)

Вы получите «['LinuxHint', '.',' co ','.',' us '] »в качестве вывода после выполнения приведенного выше примера кода. Символ точки был экранирован в операторе RegEx, упомянутом выше. Обратите внимание, что хотя приведенный выше пример работает с одним символом точки, он может не работать со сложными разделителями и сложными строками. Возможно, вам придется определить свой собственный шаблон RegEx в зависимости от вашего варианта использования. Пример приведен здесь, чтобы дать вам некоторое представление о процессе сохранения разделителя в окончательном списке с помощью операторов RegEx.

Метод partition () иногда может оставлять пустые строки, особенно если разделитель не найден в строке, которую нужно разделить. В таких случаях вы можете использовать операторы понимания списка для удаления пустых строк, как описано в разделе о методе «split ()» выше.

text = "LinuxHint"
результат = список (текст.раздел ("."))
result = [элемент для элемента в результате, если элемент !знак равно
печать (результат)

После выполнения приведенного выше кода вы должны получить «['LinuxHint']» в качестве вывода.

Заключение

Для простых и понятных разделений вы можете использовать методы «split ()» и «partition ()» для получения повторяемых типов. Для сложных строк и разделителей вам нужно будет использовать операторы RegEx.

5 лучших эргономичных компьютерных мышей для Linux
Вызывает ли длительное использование компьютера боль в запястье или пальцах?? Вы страдаете от скованности суставов и постоянно должны пожимать руки? В...
Как изменить настройки мыши и сенсорной панели с помощью Xinput в Linux
Большинство дистрибутивов Linux по умолчанию поставляются с библиотекой libinput для обработки событий ввода в системе. Он может обрабатывать события ...
Переназначьте кнопки мыши по-разному для разных программ с помощью X-Mouse Button Control
Может быть, вам нужен инструмент, который мог бы изменять управление вашей мышью с каждым приложением, которое вы используете. В этом случае вы можете...