Python - Flatten a dict of lists into unique values?

python

Solution

Double set comprehension:

Python 3:

sorted({x for v in content.values() for x in v})

Python 2:

sorted({x for v in content.itervalues() for x in v})

Problem

I have a dict of lists in python: ``` content = {88962: [80, 130], 87484: [64], 53662: [58,80]} ``` I want to turn it into a list of the unique values ``` [58,64,80,130] ``` I wrote a manual solution, but it's a manual solution. I know there are more concise and more elegant way to do this with list comprehensions, map/reduce , itertools , etc. anyone have a clue ? ``` content = {88962: [80, 130], 87484: [64], 53662: [58,80]} result = set({}) for k in content.keys() : for i in content[k]: result.add(i) # and list/sort/print just to compare the output r2 = list( result ) r2.sort() print r2 ```

Original source

Related problems