как заменить конкретное слово в предложении на python - PullRequest
0 голосов
/ 27 декабря 2011

У меня есть предложение, например, "привет, это привет! Что мне нужно сделать, это оставить первый привет, но удалить другие "привет" в предложении. Как бы я поступил так?

Ответы [ 6 ]

1 голос
/ 27 декабря 2011
>>> s = 'hello this is hello stackoverflow hello'
>>> head, sep, tail = s.partition('hello')
>>> head + sep + tail.replace('hello', '')
'hello this is  stackoverflow '
1 голос
/ 27 декабря 2011

Должно быть быстрее, чем у Неда, но цена читаема:

>>> idx = s.find('hello') + len('hello')
>>> s[:idx] + s[idx:].replace('hello', '')
'hello this is  stackoverflow '
1 голос
/ 27 декабря 2011
parts = old.split("hello")
parts[1:1] = "hello"
new = "".join(parts)

Кажется, должен быть лучший способ ...

0 голосов
/ 27 декабря 2011

Во-первых, все увидят это как головоломку с соответствующим шаблоном, поэтому вопрос в том, почему hello повторяется?

Если первое hello предполагается, то простая фильтрация строки может решить проблему

s = 'hello this is hello stackoverflow hello'
l = s.split(' ')
"hello %s" % " ".join(filter (lambda a: a != 'hello', l))
'hello this is stackoverflow'

Или:

import re
s = 'hello this is hello stackoverflow hello'
re.sub('\shello\s?', ' ', s).strip()
'hello this is stackoverflow'
0 голосов
/ 27 декабря 2011
s = "hello this is hello stackoverflow hello"
t = "hello"

i = s.index(t) + len(t) + 1
s = s[:i] + s[i:].replace(t, "")

print s # hello this is  stackoverflow 
0 голосов
/ 27 декабря 2011

Очень плохой способ:

s = "hello this is hello stackoverflow hello"
s = s.replace("hello", "world").replace("world", "hello", 1)

Он заменит все hello на world, затем заменит только первое world на hello

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