Как организовать перестановки ключей в словаре при помощи itertools.permutations()?

A = {
    "a": [1, 0, 1],
    "b": [0, 1, 1],
    "c": [1, 0, 1],
    "d": [1, 1, 0],
    "e": [0, 1, 1]
}

Как сделать перестановки всех ключей, не трогая при этом их значений?


Ответы (1 шт):

Автор решения: Михаил Муругов
from itertools import permutations

A = {
    "a": [1, 0, 1],
    "b": [0, 1, 1],
    "c": [1, 0, 1],
    "d": [1, 1, 0],
    "e": [0, 1, 1]
}

values = A.values()  # Запоминаем значения из словаря

for perm in permutations(A.keys()):  # Перебираем все перестановки ключей словаря
    new_dict = dict(zip(perm, values))  # Из очередной перестановки и значений делаем новый словарь
    print(new_dict)  # Выводим новый словарь
→ Ссылка