Как я могу заполнить все знаки равенства в Python, кроме ==, !=, >=, <=?

Если я сделаю простой:

str.replace('=', ' = ')

он будет заполнять ВСЕ знаки равенства. Но я хочу оставить ==, !=, >=, <=, +=, -=, /=, *= в такт.

Вы пробовали использовать регулярные выражения?

Jerzy Pawlikowski 22.05.2019 15:25

* нетронутый. Вы должны изучить docs.python.org/2/library/re.html#module-re.

CristiFati 22.05.2019 15:25

Это касается стиля кода и соответствия PEP8? если да, то вы могли бы посмотреть на черный github.com/python/черный

Chris_Rands 22.05.2019 15:26

Нет, на самом деле я хочу специально пойти против некоторых стандартов PEP8

Shamoon 22.05.2019 15:29

почему как? Можете ли вы дать немного больше контекста вашей проблеме?

Chris_Rands 22.05.2019 15:31

Я провожу эксперименты по разбору кода, и в настоящее время stuff=5 рассматривается как один токен. Я хочу разделить его на stuff = 5, чтобы он рассматривался как 3 токена.

Shamoon 22.05.2019 15:35

правильно, но stuff = 5является соответствует PEP8, так почему вы говорите, что это против PEP8?

Chris_Rands 22.05.2019 15:37

На самом деле правила могут быть немного сложнее, рекомендуется использовать пробелы вокруг = обычно python.org/dev/peps/pep-0008/#другие-рекомендации, но я не думаю, что в случае аргументов ключевого слова

Chris_Rands 22.05.2019 15:44
Анализ настроения постов в Twitter с помощью Python, Tweepy и Flair
Анализ настроения постов в Twitter с помощью Python, Tweepy и Flair
Анализ настроения текстовых сообщений может быть настолько сложным или простым, насколько вы его сделаете. Как и в любом ML-проекте, вы можете выбрать...
7 лайфхаков для начинающих Python-программистов
7 лайфхаков для начинающих Python-программистов
В этой статье мы расскажем о хитростях и советах по Python, которые должны быть известны разработчику Python.
Установка Apache Cassandra на Mac OS
Установка Apache Cassandra на Mac OS
Это краткое руководство по установке Apache Cassandra.
Сертификатная программа "Кванты Python": Бэктестер ансамблевых методов на основе ООП
Сертификатная программа "Кванты Python": Бэктестер ансамблевых методов на основе ООП
В одном из недавних постов я рассказал о том, как я использую навыки количественных исследований, которые я совершенствую в рамках программы TPQ...
Создание персонального файлового хранилища
Создание персонального файлового хранилища
Вы когда-нибудь хотели поделиться с кем-то файлом, но он содержал конфиденциальную информацию? Многие думают, что электронная почта безопасна, но это...
Создание приборной панели для анализа данных на GCP - часть I
Создание приборной панели для анализа данных на GCP - часть I
Недавно я столкнулся с интересной бизнес-задачей - визуализацией сбоев в цепочке поставок лекарств, которую могут просматривать врачи и...
2
8
118
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вот один из способов использования re.sub:

re.sub(r'(?<![=!<>+-\/\*])(\=)(?![=!<>+-\/\*])', ' = ', s)

Пример:

import re
s = 'a=d==a!=s=as<=s 5-=10 5=+4=!a'
re.sub(r'(?<![=!<>+-\/\*])(\=)(?![=!<>+-\/\*])', ' = ', s)
# 'a = d==a!=s = as<=s 5-=10 5=+4=!a'

Авария:

(?+-/*])(\=)(?![=!<>+-/*])

  • Отрицательный взгляд назад (?<![=!<>+-\/\*])
    • Утверждают, что приведенное ниже регулярное выражение не соответствует
    • =!<> соответствует одному символу в списке =!<> (с учетом регистра)
    • +-\/ один символ в диапазоне от + (индекс 43) до / (индекс 47) (с учетом регистра)
    • \* буквально соответствует символу * (с учетом регистра)
  • 1-я группа захвата (\=)
    • \= соответствует символу = буквально (с учетом регистра)
  • Отрицательный прогноз (?![=!<>+-\/\*])
    • Утверждают, что приведенное ниже регулярное выражение не соответствует
    • Сопоставьте один символ из списка ниже [=!<>+-\/\*]
    • =!<> соответствует одному символу в списке =!<> (с учетом регистра)
    • +-\/ один символ в диапазоне от + (индекс 43) до / (индекс 47) (с учетом регистра)
    • \* буквально соответствует символу * (с учетом регистра)

Это также сохранит => , =< , =+, =- такими же. Разве = не следует дополнять в этих случаях?

Arkistarvh Kltzuonstev 22.05.2019 15:37

Я думаю, я должен также добавить *=, /=, %=, **=, //= в список

Shamoon 22.05.2019 15:47

Текущее решение также рассматривает эти случаи. @Shamoon обновил пример.

yatu 22.05.2019 15:50

Другие вопросы по теме