[Tutor] Dictionary viceversa
Peter Otten
__peter__ at web.de
Mon Jul 30 13:45:36 EDT 2018
Zachary Ware wrote:
> On Mon, Jul 30, 2018 at 12:20 PM Valerio Pachera <valerio at pbds.eu> wrote:
>> I was looking to substiture the cicle for e in new_d like this:
>> [ new_d[e].append(k) if e in new_d else new_d[e].append(k) for e in
>> [ d[k] ]
>> but it can't work because 'new_d[e] = []' is missing.
>
> Have a look at `dict.setdefault` and play around with it; I think it
> will help you do what you want.
Either that, or use a defaultdict:
>>> import collections
>>> room_access = collections.defaultdict(list)
>>> for user, rooms in users.items():
... for room in rooms:
... room_access[room].append(user)
...
>>> room_access
defaultdict(<class 'list'>, {'office-c': ['user3'], 'office-b': ['user2',
'user1'], 'office-a': ['user3', 'user1']})
More information about the Tutor
mailing list