1

i started learning Python recently and i am facing difficulty converting the below piece of code into a list comprehension:

    list = []     #An empty List
    for key,value in defaultDict.items():#iterate through the default dict
        for i in defaultDict[key]:#iterate through the list in the defaultDict
            if i not in list:#If the item in the list is not present in the main list
                list.append(i)#append it

Is it possible for me to even do it??Any help with this is much appreciated.

N_B
  • 301
  • 2
  • 15

1 Answers1

4

Very straightforward: use a nested list comprehension to get all is and a set to remove duplicates.

list(set([item for __, value in defaultDict.items() for item in value]))

Let's break it down:

  • [item for key,value in defaultDict.items() for item in value] is a nested list comprehension.
  • set(...) will remove all duplicates - the equivalent of if i not in list: list.append(i) logic you have
  • list(set(...)) will convert the set back to a list for you.
Community
  • 1
  • 1
Akshat Mahajan
  • 9,543
  • 4
  • 35
  • 44