Форум сайта python.su
26
# -*- coding: UTF-8 -*- import re import random txt = '{Копирайтер|Автор} {сделал|выполнил|закончил} {трудную|сложную|нелёгкую} работу.' for t in re.findall('{(.*?)}', txt): words = t.split('|') txt = txt.replace(t, random.choice(words)) txt = txt.replace('{', '') txt = txt.replace('}', '') print txt.decode('utf-8')
{Вы {получаете|можете получить}|Можно получить} {{большое|огромное} количество|множество|много} {бонусов|плюсов}: {экономия времени, денег, нервов|экономите время, деньги, нервы}'
Офлайн
253
см itertools.product https://docs.python.org/2/library/itertools.html
Для древовидных входных данных по моему мнению лучше древовидное а не строковое представление данных.
Вы это имеете ввиду?
Seq(["Вы",Or(["получаете","можете получить"]),Seq(Or(["большое","огромное"]),Or(["количество","множество","много"]))])...
Офлайн