Нужнен код который будет заменять слово "кот" на рандомное слово из списка, так чтобы 1 кот и 2 кот могли замениться как на одно так и на разные слова

Рейтинг: 1Ответов: 3Опубликовано: 05.02.2023
import random

string = '''кот вышел на улицу,
кот залез на дерево,
ночью кот бегал по дому,
кот ходит по лужайке,
кот встретил друга,
кот любит быть дома.
'''

zamena = ["пёс", "хомяк"]

x = random.randint(0, len(zamena) - 1)

string1 = string.replace("кот", zamena[x])

print(string1)

// данный код заменяет всех котов в тексте либо на хомяков, либо на псов, необходим полный рандом для каждого слова "кот", без дублирования рандома после второй строки //

Ответы

▲ 5
import random

string = '''кот вышел на улицу,
кот залез на дерево,
ночью кот бегал по дому,
кот ходит по лужайке,
кот встретил друга,
кот любит быть дома.
'''

zamena = ["пёс", "хомяк"]
string1 = string

while "кот" in string1:
    string1 = string1.replace("кот", random.choice(zamena), 1)

print(string1)
▲ 1

метод sub в модуле re позволяет использовать в качестве строки замены результат выполнения функции

import random
import re

string = '''кот вышел на улицу,
кот залез на дерево,
ночью кот бегал по дому,
кот ходит по лужайке,
кот встретил друга,
кот любит быть дома.
'''

zamena = ["пёс", "хомяк"]

string1 = re.sub("кот", lambda i: random.choice(zamena), string)

print(string1)
▲ 0
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)