Метод разделения
Метод split () может использоваться для разделения слов с использованием указанного пользователем разделителя. Он возвращает список разделенных слов без разделителя. Если разделитель не указан пользователем, пробел (один или несколько) используется в качестве единственного разделителя.
Например, приведенный ниже код вернет в качестве вывода «['Linux', 'Hint']»:
text = "Подсказка для Linux"текст.расколоть()
Приведенный ниже код вернет «['LinuxHint', 'com']» в качестве вывода, когда «.»Используется как разделитель:
text = "LinuxHint.com "текст.расколоть(".”)
Разделитель не обязательно должен состоять из одного символа. Метод split принимает два аргумента:
- sep: разделитель, который будет использоваться для разделения
- maxsplit: количество делений, которое нужно сделать
Оба эти аргумента необязательны. Как упоминалось выше, если аргумент «сеп» не указан, пробел используется в качестве разделителя для разделения. Аргумент «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.