Создать сложный словарь, используя несколько списков - PullRequest
0 голосов
/ 28 ноября 2018

Допустим, у меня есть три списка и я хочу создать словарь, используя элементы из списков в качестве ключей и значений.Я хочу, чтобы это выглядело так:

main_dic = {'FL-01':{'existing': 22, 'proposed': 47}, 'FL-01P': {'existing': 5, 'proposed': 8}, 'P04A': {'existing': 14, 'proposed': 38}, 'P05': {'existing': 7, 'proposed': 95}}

Итак, вот мои три списка:

units = ['FL-01','FL-01P','P04A','P05']
existing = [22,5,14,7]
proposed = [47, 8, 38, 95]

Я начинаю с установки и пустого словаря

 main_dic = dict()

Сейчас я запутался, потому что мне нужно, чтобы они оставались в порядке.Думаю, я мог бы сжать существующие и предложенные вместе, но это всего лишь простой пример, и если я добавлю четвертый список, скажем future = [4, 7, 91, 26], то это не сработает.Сначала я хочу выполнить итерацию списка модулей, так как они будут ключом к основному словарю, и каким-то образом использовать setdefault(k, v), но я не уверен, как это правильно применить.Какие-либо предложения?

1 Ответ

0 голосов
/ 28 ноября 2018

Вы были правы относительно использования zip:

units = ['FL-01','FL-01P','P04A','P05']
existing = [22,5,14,7]
proposed = [47, 8, 38, 95]

d = {u: {'existing': e, 'proposed': p} for u, e, p in zip(units, existing, proposed)}

print(d)
# {'FL-01': {'existing': 22, 'proposed': 47},
#  'FL-01P': {'existing': 5, 'proposed': 8},
#  'P04A': {'existing': 14, 'proposed': 38},
#  'P05': {'existing': 7, 'proposed': 95}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...