dom*_*nik 0 python permutation
让我们假设我有:
"aabbaaa"{'A': 'a', 'B': 'a', 'C': 'b', 'D': 'a', 'E': 'b', 'F': 'a', 'G': 'b'}.如何在 python 中从占位符字符串的字典键中创建所有可能的排列?
例如,预期的结果是:
AACCAAA, AACCAAB, AACCABA, ... AACEAA, AACEAA, AAEEAA...FFGGFFF等
解决方案可能是:
>>> import itertools
>>> from collections import defaultdict
>>> dict_ = defaultdict(list)
>>> input = "ab"
>>> _dict = {'A': 'a', 'B': 'a', 'C': 'b', 'D': 'a', 'E': 'b', 'F': 'a', 'G': 'b'}
>>> for k,v in _dict.items():
... dict_[v].append(k)
...
>>> _iterables = [dict_[character] for character in input]
>>> output = [''.join(tup) for tup in itertools.product(*_iterables)]
set(['BE', 'AC', 'BG', 'AE', 'AG', 'BC', 'DG', 'DE', 'DC', 'FC', 'FE', 'FG'])
Run Code Online (Sandbox Code Playgroud)
让我知道它是否有帮助!!