Как разрезать строку в обратном порядке в Python?

Я понимаю, как обычно нарезать строку и реверсировать ее, но не понимаю, как делать и то, и другое одновременно.

скажем

message="hi there"

И я хочу выбрать только часть «там» и перевернуть ее, чтобы вывод был «ereht».

Есть ли способ сделать это? Предпочтительно использовать только переменную "message", но допустимы и любые другие способы.

что ты уже испробовал? Какой результат вы получаете?

Cam 22.04.2022 19:28

Подсказка: нотация среза поддерживает шаг, аналогичный «диапазону».

Michael Butscher 22.04.2022 19:30

Нарезка в питоне работает так [start:end:step]. Для каждого из этих значений вы можете использовать отрицательные значения. Так что подумайте о том, что будет делать отрицательное значение шага.

Mushroomator 22.04.2022 19:31

@Cam Я пытался включить другие переменные, которые являются просто нарезанными частями переменной «сообщение», а затем изменить вторую, например: message="hi there" message2=message[3:] print(message2[::-1]) Но я просто хотел знать, как это сделать, используя только данную переменную, но люди в ответах рассеял туман.

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

Ответы 3

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

Вы бы разделили строку, а затем перевернули ее часть, которую хотите

rev = message.split()[-1][::-1]

Это решение также будет работать для примера, приведенного в ОП (кредит Келли Банди):

rev = message[:-6:-1]

Это не делает «оба одновременно».

Kelly Bundy 22.04.2022 19:34

@KellyBundy покажи нам, как тогда

stefan_aus_hannover 22.04.2022 19:35

сообщение[:2:-1] или сообщение[:-6:-1]

Kelly Bundy 22.04.2022 19:35

@KellyBundy ваше первое решение не работает так, как вы думаете

stefan_aus_hannover 22.04.2022 19:37

Зависит от того, какую версию вы имеете в виду. Как написано сейчас, это работает (сначала у меня была опечатка).

Kelly Bundy 22.04.2022 19:37

Я думаю, что оба являются жизнеспособными решениями. Строго говоря, message[:-6:-1] - это тот, который выполняет оба одновременно, поэтому точно отвечает на вопрос ОП, но я по-прежнему считаю, что решение с split() лучше, поскольку оно будет работать для любых двух (или более слов), другое довольно хрупкое.

Mushroomator 22.04.2022 19:41

@KellyBundy безопаснее использовать ответ, который дают все остальные, потому что ваш ответ зависит от длины строки и должен каждый раз изменяться

stefan_aus_hannover 22.04.2022 19:42

@Mushroomator Зависит от того, что человек хочет. ОП не сказал, что они хотят изменить последнее слово. Что, если они захотят перевернуть часть «здесь»? Тогда раскол не получится. Как это сформулировано, вопрос задает метод [:...:-1].

Kelly Bundy 22.04.2022 19:44

Честная оценка. Вероятно, стоит добавить эти соображения и возможные методы в ответ @stefan_aus_hannover, чтобы дать OP возможность принять сознательное решение.

Mushroomator 22.04.2022 19:46

Для вашего конкретного вопроса вы можете использовать это:

message.split()[-1][::-1]

Вам просто нужно выбрать второй фрагмент с помощью [1], а затем перевернуть его с помощью [::-1]

message.split()[1][::-1]

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