内容旋转- Python



我创建了一个允许我创建句子列表(list)的输入和一个包含多个值的字典(dict)的输入。列表和字典的元素根据用户输入的元素而变化

我尝试通过从{}

之间的数据随机选择,让脚本从list中生成句子列表你有一个解决方案使用随机,itertool或re?我完全被封锁了。

我的信息:

List = ["Je {suis|m'appelle} kevin rab et je suis {grand|petit} et {beau|moche}.", "Je {suis|m'appelle} sam slap et je suis {grand|petit} et {beau|moche}.", "Je {suis|m'appelle} bob clob et je suis {grand|petit} et {beau|moche}.", "Je {suis|m'appelle} lydie bal et je suis {grand|petit} et {beau|moche}."] 

Dict =  {"{suis|m'appelle}": ['suis', 'm%1apo%appelle'], '{grand|petit}': ['grand', 'petit'], '{beau|moche}': ['beau', 'moche']}

我正在搜索这样的结果(随机):

['Je m%1apo%appelle kevin rab et Je suis grand et moche。','Je suis sam slap et Je suis grand et beau '。"我是我的妈妈,我是我的妈妈,我是我的妈妈。"我很高兴,我很高兴,我很高兴,我很高兴。">

您不需要dict,您可以使用re.sub与回调函数来查找这些{...}区域,并将其替换为替代方案之一:

>>> text = "Je {suis|m'appelle} kevin rab et je suis {grand|petit} et {beau|moche}."   
>>> re.sub(r"{(.+?)}", lambda m: random.choice(m.group(1).split("|")), text)         
'Je suis kevin rab et je suis petit et moche.'
>>> re.sub(r"{(.+?)}", lambda m: random.choice(m.group(1).split("|")), text)         
"Je m'appelle kevin rab et je suis petit et beau."

相关文档摘录:

如果repl是一个函数,则对pattern的每次非重叠出现调用该函数。该函数接受一个匹配对象参数,并返回替换字符串。

相关内容

  • 没有找到相关文章

最新更新