Как удалить определенную строку из некоторых строк в списке?

Я пытался найти более универсальное исправление для своего кода и с трудом с этим справлялся. Вот что у меня есть:

lst = ['Thursday, June ##', 'some string', 'another string', 'etc', 'Friday, June ##', 'more strings', 'etc']

Я пытаюсь удалить все после запятой в строках, содержащих запятые (это могут быть только строки дня недели).

Мое текущее исправление, которое работает:

new_lst = [x[:-9] if ',' in x else x for x in lst]

Но это не будет работать для каждого месяца, так как они не всегда будут строкой из 4 букв («Июнь»). Я пытался разделить запятые, а затем удалить любую строку, начинающуюся с пробела, но она не работала должным образом, поэтому я не уверен, что делаю неправильно.

Анализ настроения постов в 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
53
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

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

Мы можем использовать понимание списка вместе с split() здесь:

lst = ['Thursday, June ##', 'some string', 'another string', 'etc', 'Friday, June ##', 'more strings', 'etc']
output = [x.split(',', 1)[0] for x in lst]
print(output)
# ['Thursday', 'some string', 'another string', 'etc', 'Friday', 'more strings', 'etc']

СПАСИБО! Это прекрасно, очень ценно. Что здесь делает [0] в методе разделения?

bluetortuga 17.05.2022 04:52
split() возвращает список, поэтому [0] является первым элементом в этом списке.
BeRT2me 17.05.2022 04:54

С regex:

>>> import re
>>> lst = [re.sub(r',.*', '', x) for x in lst]
>>> lst
['Thursday,', 'some string', 'another string', 'etc', 'Friday,', 'more strings', 'etc']

Однако это медленнее, чем ответ split

О, спасибо! Я на самом деле пытаюсь удалить запятую, как бы я изменил ее для этого? Не знаком с регулярным выражением

bluetortuga 17.05.2022 04:50

@bluetortuga, исправлено. Второй аргумент re.sub — это значение замены. Это уже ничего, так что запятую сниму

Freddy Mcloughlan 17.05.2022 05:38

Вы можете использовать re.search следующим образом:

import re
lst = ['Thursday, June ##', 'some string', 'another string', 'etc', 'Friday, June ##', 'more strings', 'etc']
for i, msg in enumerate(lst):
    match = re.search(",", msg)
    if match != None:
        lst[i] = msg[:match.span()[0]]
print(lst)

Выход:

['Thursday', 'some string', 'another string', 'etc', 'Friday', 'more strings', 'etc']

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