【发布时间】:2021-02-17 19:03:48
【问题描述】:
我在合并 itertools 排列和产品以获得我想要的输出(列表)时遇到了一些困难。我正在尝试生成考虑通配符(?,*)的所有字符顺序。
例如,如果输入是 A?,我试图得到以下输出: AA AB 文学学士 交流电 加州 广告 DA ...等
下面的代码很好地生成了所有排列,其中保留了通配符。
chars = "HELLO?"
for i in range(len(chars)+1):
perms = map(''.join, permutations(chars,i))
for perm in perms:
print(perm)
这段代码允许我用所有 26 个可能的字母字符替换通配符。
chars = "HELLO?"
wilds = [('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P',
'Q','R','S','T','U','V','W','X','Y','Z') if char == "?" else (char) for char in chars]
for p in itertools.product(*wilds):
print(p)
结合这两个部分(最有效)以获得我正在寻找的输出的最佳方法是什么?有没有更好、更有效的方法来做到这一点?
【问题讨论】:
标签: python product permutation itertools