给定一个字符串和一个单词替换字典,我试图让python返回所有变体字符串。例如。对于字符串"一个去了市场"和更换字典{'一个':['一个','两个'&# 39;三'],'市场':[' town',' bed']}我想回归:['一个人去了小镇'两个去了小镇'三个去了小镇'一个去了床,'两个去了床',& #39;三人上床睡觉了。目前,只有当有两个替换选项时,我才能使用它。
我的部分工作方法使用字典中生成的单词列表,例如在上面的例子中,我有['一,二,三''去','到',' 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
for [' One,Two',' go',' to',#39; town,bed']我得到了所需的结果,但任何时候有两个以上的选择,它就是乱七八糟的。
答案 0 :(得分:0)
据说你有这些:
string = "One went to market"
dict_repl = {'One':['One','Two','Three'],'market':['town','bed']}
您可以使用string comprehension和str.replace使用此一个班轮获得预期结果:
result = [string.replace('market',v).replace('One',i) for v in dict_repl['market'] for i in dict_repl['One']]
输出:
['One went to town', 'Two went to town', 'Three went to town', 'One went to bed', 'Two went to bed', 'Three went to bed']
我相信这就是你要求的。