У меня есть ДИКТ так:питон вложенными ДИКТ понимание с кортежем как ключевой
{ ('name', 'user1'): 'foo',
('user', 'user1'): 'bar',
('name', 'user2'): 'bat',
('user', 'user2'): 'baz' }
, и я хотел бы преобразовать в:
{ 'user1': {'name': 'foo', 'user': 'bar'},
'user2': {'name': 'bat', 'user': 'baz'} }
Я могу сделать это с Словаре по умолчанию легко, но я хотел бы использовать понимание dict.
До сих пор у меня есть:
{user: {key:value for (key, user), value in my_dict.items()}}
Но пользователь не внутри цикла, так что я name 'user' is not defined
ошибка.
Как я могу достичь этого с помощью понятий dict?
Я не думаю, что это можно сделать красиво в понимании, даже с гнездом. Проблема в том, что вы хотите агрегировать результаты из нескольких элементов, что требует эффекта типа «zip». – Antimony
Если я чего-то не упускаю, вы получаете квадратичную сложность по времени и чрезмерную сложность, или вы пишете ее как простой цикл с несколькими условиями. Это должно быть понимание диктата. – delnan
Вы можете сделать это с пониманием dict, но вам придется предварительно сгруппировать значения, которые будут игнорировать точку. –