【发布时间】:2020-10-05 00:03:03
【问题描述】:
给定一个单词和一个替换字符字典,我需要根据替换形成一个字符组合
输入
word = 'accompanying'
substitutions={'c':['$'], 'a': ['4'], 'g': ['9']}
输出
{'a$$ompanyin9', 'ac$ompanyin9','a$companyin9','4ccomp4nying', '4$$omp4nying',
'4$comp4nying','4c$omp4nying', '4ccomp4nyin9', 'a$$ompanying', 'a$companying', 'ac$ompanying',
'accompanyin9', 'accompanying', '4$$omp4nyin9', '4$comp4nyin9', '4c$omp4nyin9','etc.,'}
我写了一个代码,但它并没有提供我期望的所有组合
示例代码
from itertools import product
substitutions={'c':['$'], 'a': ['4'], 'g': ['9']}
for key in substitutions.keys():
if key not in substitutions[key]:
substitutions[key].append(key)
wordPossibilities = []
word = 'accompanying'
for substitute in [zip(substitutions.keys(),ch) for ch in product(*substitutions.values())]:
temp=word
for replacement in substitute:
temp=temp.replace(*replacement)
wordPossibilities.append(temp)
print(set(wordPossibilities))
我的输出
{'4$$omp4nyin9', 'a$$ompanyin9', 'a$$ompanying', 'accompanyin9',
'accompanying', '4ccomp4nyin9', '4$$omp4nying', '4ccomp4nying'}
如果找到替换,我的代码将替换提供的字符串中的所有字符。如何根据索引进行替换以找到所有可能的组合?
【问题讨论】:
标签: python python-3.x combinations itertools