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
  • 1
  • 14

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
  • 8,850
  • 3
  • 34
  • 43