Разделить строку разделителем в python


195

Как разбить эту строку, где __находится разделитель

MATCHES__STRING

Чтобы получить вывод ['MATCHES', 'STRING']?



8
Стоит прочитать стандартные документы Python и попытаться понять несколько программ, которые другие создали, чтобы начать понимать основы Python. Практика и копирование / изменение являются отличными инструментами для изучения языка.
Тони Вейжалайнен,

Ответы:


327

Вы можете использовать str.splitфункцию:string.split('__')

>>> "MATCHES__STRING".split("__")
['MATCHES', 'STRING']

1
Мне было интересно, в чем разница между первым примером (просто с помощью split ()) и вторым примером (с циклом for)?
EndenDragon

4
@EndenDragon Цикл for автоматически применяется x.strip()и возвращает список совпадений без пробелов с обеих сторон. Дьявол кроется в деталях.
Себастьян Веркаммен

Эй, так как это очень популярный вопрос, я отредактировал его, чтобы задать только 1 конкретный вопрос, и удалил часть с пробелами вокруг разделителя, потому что не было ясно, что ОП даже ожидал (так как никогда не было вопроса в вопрос). Я думаю, что вопрос (и ответы) более полезны, но вы можете отменить все изменения, если вы не согласны.
Аран-Фей

4

Возможно, вас заинтересует csvмодуль, который предназначен для файлов, разделенных запятыми, но может быть легко изменен для использования пользовательского разделителя.

import csv
csv.register_dialect( "myDialect", delimiter = "__", <other-options> )
lines = [ "MATCHES__STRING" ]

for row in csv.reader( lines ):
    ...

1

Если в строке два или более (в приведенном ниже примере их три), вы можете использовать запятую для разделения этих элементов:

date, time, event_name = ev.get_text(separator='@').split("@")

После этой строки кода три переменные будут иметь значения из трех частей переменной ev

Итак, если переменная ev содержит эту строку и мы применяем разделитель '@':

Сб., 23. März @ 19:00 @ Klavier + Orchester: SPEZIAL

Затем после операции разбиения переменная

  • дата будет иметь значение "Sa., 23. März"
  • время будет иметь значение "19:00"
  • имя-события будет иметь значение "Klavier + Orchester: SPEZIAL"
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.