Отдельный строковый символ без функции python [дубликат]

Dec 02 2020

Можете ли вы разделить это «+ 2x-5y + 8 + 2y» (между символами нет пробелов), например [+ 2x, -5y, + 8, + 2y] в python? Как?

Ответы

schetefan24 Dec 02 2020 at 22:34

если вы знаете шаблон ввода для всего, что может прийти, взгляните на регулярные выражения

В вашем случае решение может быть чем-то вроде

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

re.findall(expression, input)требует регулярного выражения и аргумента, который должен быть проанализирован. В приведенном выше решении шаблон [+-]\d[xy]?состоит из

  • [+-] символ + или -
  • \dлюбая цифра, если вы ожидаете, что \d+вместо нее будет использоваться несколько цифр (+ означает здесь "хотя бы одно повторение")
  • [xy]?один из символов x и y, но он может отсутствовать. Если вы ожидаете и других букв, добавьте их в эти скобки.