Dividir uma string por um delimitador em python


195

Como dividir essa string onde __está o delimitador

MATCHES__STRING

Para obter uma saída de ['MATCHES', 'STRING']?



8
Vale a pena ler os documentos padrão do python e tentar entender alguns programas que outros criaram para começar a entender o básico do Python. A prática e a cópia / modificação são ótimas ferramentas para aprender o idioma.
Tony Veijalainen 13/08/10

Respostas:


327

Você pode usar a str.splitfunção:string.split('__')

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

1
Eu queria saber, qual é a diferença entre o primeiro exemplo (simplesmente usando split ()) e o segundo exemplo (com um loop for)?
precisa saber é o seguinte

4
@EndenDragon O loop for se aplicará automaticamente x.strip()e retornará uma lista de correspondências sem espaços em branco em ambos os lados. O diabo está nos detalhes.
Sébastien Vercammen

Ei, como essa é uma pergunta muito popular, editei-a para fazer apenas uma pergunta específica e removi a parte com os espaços ao redor do delimitador porque não estava claro o que o OP esperava que acontecesse (como nunca houve uma pergunta em a questão). Acho que a pergunta (e as respostas) são mais úteis dessa maneira, mas fique à vontade para reverter todas as edições, se você não concordar.
`` #

4

Você pode estar interessado no csvmódulo, projetado para arquivos separados por vírgula, mas pode ser facilmente modificado para usar um delimitador personalizado.

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

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

1

Quando você tem dois ou mais (no exemplo abaixo, existem três) elementos na cadeia, use vírgula para separar esses itens:

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

Após essa linha de código, as três variáveis ​​terão valores de três partes da variável ev

Portanto, se a variável ev contiver essa string e aplicarmos o separador '@':

Sa., 23. Março @ 19:00 @ Klavier + Orchester: SPEZIAL

Depois, após operação dividida, a variável

  • data terá o valor "Sa., 23. März"
  • time terá o valor "19:00"
  • event_name terá o valor "Klavier + Orchester: SPEZIAL"
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.