Удаление подстроки из одного символа, а не в списке

Я могу эффективно удалять отдельные символы из source_string, но как включить условие, чтобы не удалять отдельные символы из списка compass?

compass = ['N', 'E', 'S', 'W']
source_string = 'Florida W Campus A B CD'
' '.join([x for x in source_string.split() if (len(x)>1)])

>>> 'Florida Campus CD'

Желаемый результат:

>>> 'Florida W Campus'

Обновлено: мне нужно добавить несколько символов в строку «Florida W Campus A B CD»

Анализ настроения постов в 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
Недавно я столкнулся с интересной бизнес-задачей - визуализацией сбоев в цепочке поставок лекарств, которую могут просматривать врачи и...
0
0
33
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

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

Пытаться:

>>> ' '.join([x for x in source_string.split() if (len(x)>1) or x in compass])
'Florida W Campus CD'

Спасибо, это работает, однако я отредактировал строку, включив в нее дополнительные буквы.

Starbucks 17.05.2022 18:08

Мне нужно удалить все отдельные символы и несколько символов, если их нет в списке компаса.

Starbucks 17.05.2022 18:21

Понятия не имею, что это значит. «Флорида» состоит из нескольких символов, но не удалена. «CD» состоит из нескольких символов — почему вы его удаляете? Пожалуйста, отредактируйте свой вопрос, чтобы было понятно.

not_speshal 17.05.2022 18:24

Вы можете использовать:

compass = ['N', 'E', 'S', 'W']
addl_strs = ['A', 'B', 'CD']
keep_strs = set(compass).union(set(addl_strs))
' '.join(list(filter(lambda x:len(x) > 1 if x not in keep_strs else x, source_string.split())))

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

Спасибо, это работает, однако я отредактировал строку, включив в нее дополнительные буквы.

Starbucks 17.05.2022 18:09

Если вы хотите добавить дополнительные буквы, как насчет их добавления, как я упоминал в ответе?

SomeDude 17.05.2022 18:14

В addl_strs сотни комбинаций

Starbucks 17.05.2022 18:22

@Starbucks, вам нужно четко указать свою проблему в вопросе.

SomeDude 17.05.2022 18:23
compass = ['N', 'E', 'S', 'W']
source_string = 'Florida W Campus A B'
' '.join([x for x in source_string.split() if x in compass or (len(x)>1)])

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