Попытка отредактировать строку, используя .replace с Python - PullRequest
0 голосов
/ 23 октября 2019

У меня есть строка:

some_string = "I rode my bike 100' North toward the train station"

Я хочу изменить ('Север) часть на (' N), чтобы эта часть читалась как (... мой велосипед 100 'N в направлении...) и т. д.

Напишите сейчас, я пытаюсь:

some_string = some_string.replace("' North ", "' N ")

Но он остается прежним.

Я не хочу использовать что-нибудь хитроекак .replace ('orth', ''), потому что я хочу, чтобы он работал с более длинными предложениями, которые могут включать в себя экземпляры 'North', но без апострофа поблизости.

Почему мой первый метод не работает?

Пожалуйста, помогите!

РЕДАКТИРОВАТЬ:

Итак, я получаю эту первую строку путем поиска в другой строке.

Python, по какой-то причине, возвращает его, так что апостроф - это другой тип апостропа !!? Чтобы отличить его от одинарных кавычек, которые не экранированы.

some_string = '’'

^ Это выглядит так (скопировал и вставил его). Откуда это? Как бы я набрал его с помощью клавиатуры? Wtf!

РЕДАКТИРОВАТЬ 2:

Я получаю первую строку из Adobe PDF. Я думаю, что это отформатировано как "необычная цитата", которую вы получаете, удерживая Alt и набрав 0146 на цифровой клавиатуре !!!

Ответы [ 4 ]

0 голосов
/ 23 октября 2019

В Python (и, как правило, в большинстве языков программирования высокого уровня), string неизменны. Вы не можете изменить это. Действительно, вы можете создать еще одну строку.

Итак, для достижения вашей цели вот мое предложение:

some_string = "I rode my bike 100' North toward the train station"
some_string = some_string.replace("' North ", "' N ") # assign the new string to the old string
print(some_string)

Вывод: "I rode my bike 100' N toward the train station"

0 голосов
/ 23 октября 2019

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

some_string = "I rode my bike 100' North toward the train station"
new_string = some_string.replace("North ", " N ")
print(new_string)
>> I rode my bike 100'  N toward the train station
0 голосов
/ 23 октября 2019

Попробуйте

some_string=some_string.replace("' North ", "' N ")

.

Обратите внимание, что есть документация, https://docs.python.org/3/library/stdtypes.html,, говорящая

str.replace(old, new [, count])
Возвращает копию строки, в которой все вхождения подстроки old заменены на new. Если указан необязательный аргумент count, заменяются только первые вхождения count.


Я вызываю bs для этого редактирования, оно работает правильно, см. https://ideone.com/8Mossq
some_string = "I rode my bike 100' North toward the train station"
some_string = some_string.replace("' North ", "' N ")
print(some_string)

Результат:

I rode my bike 100' N toward the train station
0 голосов
/ 23 октября 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...