Как преобразовать значения словаря в наборы словарей - PullRequest
3 голосов
/ 24 апреля 2019

Я пытаюсь решить некоторые проблемы с графиком, но я застрял на полпути.У меня есть словарь наборов Python, но я хотел бы преобразовать исходные значения словаря (которые являются наборами) в словарь, так что каждое значение в наборе становится ключом, который будет иметь другое значение 1. Я думаю, что это то, чтоназывается вложенным словарем - я не уверен.

Я перебрал dict.values(), присвоил переменной xxx и использовал код dict.fromkeys(xxx, 1), и это сработало, но я не могу интегрировать результат обратнов оригинальный словарь.

Вот пример словаря:

d = {'35': {'1', '37', '36', '71'}, '37': {'1', '35'}} 

Я хочу, чтобы вывод выглядел следующим образом:

d = {35: {1 : 1, 37 : 1, 36 : 1, 71 : 1}, 37: {1 : 1, 35 : 1}} 

, если вы заметили, исходные значения словаря сталисобственные словари и апострофы ('') отключены.

Может кто-нибудь помочь мне, пожалуйста, или дать мне указатели.Спасибо

Ответы [ 2 ]

1 голос
/ 24 апреля 2019

Вам просто нужно немного понимания списка:

def convert(input):
    return {key: {val: 1 for val in vals} for key, vals in input.items()}

print(convert({'35': {'1', '37', '36', '71'}, '37': {'1', '35'}}))
# {'35': {'1': 1, '37': 1, '36': 1, '71': 1}, '37': {'1': 1, '35': 1}}
0 голосов
/ 24 апреля 2019

Вы почти у цели.Просто оберните ключи и значения с помощью int:

{int(k):dict.fromkeys(map(int, v), 1) for k, v in d.items()}

Вывод:

{35: {37: 1, 71: 1, 36: 1, 1: 1}, 37: {35: 1, 1: 1}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...