On 30/07/18 19:11, Zachary Ware wrote:
> On Mon, Jul 30, 2018 at 1:08 PM Alan Gauld via Tutor <[email protected]> wrote:
>> There are lots of options including those suggested elsewhere.
>> Another involves using get() which makes your function
>> look like:
>>
>> def viceversa(d):
>> new_d = dict()
>> for k in d:
>> for e in d[k]:
>> new_d[e] = new_d.get(e,[]).append(k)
>
> Note that this will set each entry to `None` as returned by `list.append`.
Oops, yes. You need an intermediate variable:
for e in d[k]:
data = new_d.get(e,[])
data.append(k)
new_d[e] = data
Or use addition:
for e in d[k]:
new_d[e] = new_d.get(e,[]) + [k]
--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.amazon.com/author/alan_gauld
Follow my photo-blog on Flickr at:
http://www.flickr.com/photos/alangauldphotos
_______________________________________________
Tutor maillist - [email protected]
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor