给定一个替换映射,比如{search: replace, search: replace, ...}
和一个字符串,如何生成该字符串所有可能替换的列表(第一个子字符串被替换,第二个子字符串被替换,两者都被替换等等)。示例:
map = {
'bee': 'BETA',
'zee': 'ZETA',
'dee': 'DELTA'
}
source_string = 'bee foo zee bar bee'
desired result =
[
'bee foo zee bar bee',
'BETA foo zee bar bee',
'bee foo ZETA bar bee',
'BETA foo ZETA bar bee',
'bee foo zee bar BETA',
'BETA foo zee bar BETA',
'bee foo ZETA bar BETA',
'BETA foo ZETA bar BETA'
]
顺序并不重要。在
Itertools.product
可以帮到你。在您的例子中,字符串中的三个单词有二进制选择。所以会给你8个可能的bee和zee的替代品,其中
0
表示不替换,1
分别表示替换为BETA和ZETA。在以下是您想要的。在
^{pr2}$'bee foo zee bar bee'
=>;['bee', 'foo', 'zee', 'bar', 'bee']
:输出:
^{pr2}$相关问题 更多 >
编程相关推荐