@Mier
py+math+eng

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

Здравствуйте, нужна консультация. Пытаюсь программировать на питоне и сильный затуп.
Суть вопроса. Есть список из тысяч разных слов - нужно сделать так, чтобы каждое новое слово вставлялось в существующий текстовый документ в пробелы. Как-то так, объяснять не умею.
  • Вопрос задан
  • 201 просмотр
Решения вопроса 2
adugin
@adugin Куратор тега Python
from random import choice
from itertools import chain, repeat
from functools import reduce

text = "Quick brown fox jumps over the lazy dog"
repl = ['one', 'two', 'three', 'four', 'five', 'six', 'seven']

Оптимальный по читаемости и простоте вариант:
' '.join(f'{word} {choice(repl)}' for word in text.split())

Результат:
'Quick two brown four fox one jumps seven over four the three lazy one dog two'

Другие варианты:
def inserts(replacements):
    while True:
        yield choice(replacements)

' '.join(chain(*zip(text.split(), inserts(repl))))

' '.join(chain(*zip(text.split(), map(choice, repeat(repl)))))

' '.join(chain(*map(lambda word: (word, choice(repl)), text.split())))

' '.join(reduce(lambda lst, word: lst + [word, choice(repl)], text.split(), []))
Ответ написан
Комментировать
@fireSparrow
Режешь текст по пробелам, используя split.
А потом с помощью join из этих кусочков опять собираешь одну строку, но чередуя их со словами, которые с помощью random.sample() выбираются из списка слов.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы