Нужнен код который будет заменять слово "кот" на рандомное слово из списка, так чтобы 1 кот и 2 кот могли замениться как на одно так и на разные слова
import random
string = '''кот вышел на улицу,
кот залез на дерево,
ночью кот бегал по дому,
кот ходит по лужайке,
кот встретил друга,
кот любит быть дома.
'''
zamena = ["пёс", "хомяк"]
x = random.randint(0, len(zamena) - 1)
string1 = string.replace("кот", zamena[x])
print(string1)
// данный код заменяет всех котов в тексте либо на хомяков, либо на псов, необходим полный рандом для каждого слова "кот", без дублирования рандома после второй строки //
Ответы (3 шт):
Автор решения: splash58
→ Ссылка
метод sub в модуле re позволяет использовать в качестве строки замены результат выполнения функции
import random
import re
string = '''кот вышел на улицу,
кот залез на дерево,
ночью кот бегал по дому,
кот ходит по лужайке,
кот встретил друга,
кот любит быть дома.
'''
zamena = ["пёс", "хомяк"]
string1 = re.sub("кот", lambda i: random.choice(zamena), string)
print(string1)
Автор решения: eri
→ Ссылка
import random
string = '''кот вышел на улицу,
кот залез на дерево,
ночью кот бегал по дому,
кот ходит по лужайке,
кот встретил друга,
кот любит быть дома.
'''
zamena = ["пёс", "хомяк"]
string1 = string
while "кот" in string1:
string1 = string1.replace("кот", random.choice(zamena), 1)
print(string1)
Автор решения: Сергей Ш
→ Ссылка
import random
string = '''кот вышел на улицу,
кот залез на дерево,
ночью кот бегал по дому,
кот ходит по лужайке,
кот встретил друга,
кот любит быть дома.
'''
string1 = ''
zamena = ["пёс", "хомяк"]
for z in string.split('\n'):
x = random.choice(zamena)
string1 += z.replace("кот", x) + '\n'
print(string1)
# 2
string1 = string
for z in range(string.count("кот")):
x = random.choice(zamena)
string1 = string1.replace("кот", x, 1)
print(string1)