Caractere de string separado sem função python [duplicar]

Dec 02 2020

Você pode separar este "+ 2x-5y + 8 + 2y" (não há espaços entre os caracteres) como [+ 2x, -5y, + 8, + 2y] em python? Quão?

Respostas

schetefan24 Dec 02 2020 at 22:34

se você conhece o padrão de entrada para tudo o que pode vir, dê uma olhada nas expressões regulares

No seu caso, uma solução poderia ser algo como

import re
a = "+2x-5y+8+2y"
print(re.findall(r"[+-]\d[xy]?", a))

re.findall(expression, input)requer uma expressão regular e um argumento que deve ser analisado Na solução acima, o padrão [+-]\d[xy]?consiste em

  • [+-] um símbolo + ou -
  • \dqualquer dígito, se você espera vários dígitos, use em seu \d+lugar (+ significa aqui "pelo menos uma repetição")
  • [xy]?um dos caracteres xey, mas pode estar faltando. Se você espera outras letras também, adicione-as dentro desses colchetes