У меня есть следующий словарь:Как использовать itertools для создания словарей всех перестановок данного словаря
test = OrderedDict({
"one":1,
"two":2,
"three":3
})
И я хочу иметь следующий результат:
{'three':3, 'two':2, 'one':1}
{'three':3, 'one':1, 'two':2}
{'two':2, 'three', 'one':1}
{'two':2, 'one':1, 'three':3}
{'one':1, 'three':3, 'two':2}
{'one':1, 'two':2, 'three':3}
Это все словари, которые могут быть сгенерированы с использованием перестановок на данном тесте dict.
На данный момент я могу только получить кортежи возможных перестановок с помощью следующей:
for perm in itertools.permutations(test):
print(perm)
Выведет:
('three', 'two', 'one')
('three', 'one', 'two')
('two', 'three', 'one')
('two', 'one', 'three')
('one', 'three', 'two')
('one', 'two', 'three')
Как я могу использовать itertools получить словари с ключом/значений вместо кортежи?
EDIT: Изменен тест, чтобы быть OrderedDict
Dicts не имеют никакого порядка, так это невозможно, если вы не используете 'OrderedDict'. –
Словари ** не имеют порядка **; ваши «вариации» вывода - это одинаковое значение словаря. –
Да, но тот же результат происходит с orderdict –