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

mylist = ['Arthur Morgan Game Name: Red Dead Redemption2',
'Zealda',
'Geralt Game Name:Witcher3','Uncharted4']

У меня есть список строк выше, и я хочу сначала разделить его на «Имя игры:» и сохранить только текст после разделителя. Я пробовал [w.split('Game Name: ') for w in mylist]

Какой следующий шаг?

Ожидаемые результаты:

['Red Dead Redemption2','Zealda','Witcher3','Uncharted4']

Спасибо!

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

user557597 16.07.2019 17:59
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
1
106
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий
[w.split('Game Name:')[-1] for w in mylist]

Редактировать В соответствии с Мартин Питерсpartition() быстрее, даже когда вам нужно проверить наличие пустых строк.

[w.partition('Game Name:')[-1] or w for w in mylist]

Вы не учитываете : в названии игры, а w.partition(':')[-1] было бы быстрее.

Martijn Pieters 16.07.2019 17:45

Спасибо за помощь@wilkben

user10835913 16.07.2019 17:48

@MartijnPieters Хотя раздел работает немного быстрее, он дает разные результаты для строк, не содержащих разделителя. Добавленная проверка, чтобы увидеть, существует ли разделитель, сведет на нет все преимущества производительности.

wilkben 16.07.2019 17:55

@wilkben: это зависит от того, что вы хотите, если это проблема. И проверка того, что раздел пуст (второй элемент), по-прежнему выполняется быстро.

Martijn Pieters 16.07.2019 18:17

Я создал заезд на время: stackoverflow.com/a/57064170. Спойлер: str.partition() побеждает по всем фронтам.

Martijn Pieters 16.07.2019 22:32
mylist = ['Arthur Morgan Game Name: Red Dead Redemption2',
'Zealda',
'Geralt Game Name:Witcher3','Uncharted4']

gameNames = [w.split(":")[-1].strip(" ") for w in mylist]
print(gameNames)

Возвращает:

['Red Dead Redemption2', 'Zealda', 'Witcher3', 'Uncharted4']

Вы не учитываете : в названии игры, а w.partition(':')[-1] было бы быстрее. А можно просто использовать .strip() без аргументов.

Martijn Pieters 16.07.2019 17:46

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