【发布时间】:2017-07-09 15:18:06
【问题描述】:
给定一个字符串和一个单词替换字典,我试图让 python 返回所有变体字符串。例如。对于字符串“One go to market”和替换字典 {'One': ['One','Two','Three'], 'market': ['town','bed']} 我想返回:['一个去镇上','两个去镇上','三个去镇上',一个去睡觉','两个去睡觉','三个去睡觉']。目前我只有在有两个替换选项时才能使用它。
我的部分工作方法使用从字典生成的单词列表,例如在上面的例子中,我有 ['One,Two,Three','went','to','town,bed']。这个这个:
def perm(wordlist):
a=[[]]
for i in wordlist:
if ',' in i:
wds=i.split(',')
for alis in a:
alis.append(wds[0])
for j in wds[1:]:
b=[x[:-1] for x in a]
for alis in b:
alis.append(j)
a=a+b
else:
for alis in a:
alis.append(i)
return a
对于 ['One,Two','went','to','town,bed'] 我得到了所需的结果,但任何时候有两个以上的选项都是混乱的。
【问题讨论】:
-
到目前为止您尝试过什么?你能发布你的代码吗?
-
另外,您想如何处理重复项? “再去一次酒店”如何处理?在这种情况下,您希望生成 3 个句子还是 9 个句子?
-
在这种情况下有 9 个句子(尽管根据我的输入可能不会出现这种情况。)
-
代码现在已粘贴 - 抱歉,格式化需要一些时间 - 我是新人
标签: python string dictionary