title: Python: Use sets in conjunction with dictionaries
body: <p>I have this method here that generates a directed graph in the form of a dictionary where the values of a key are the nodes that the key points to, ie, {'stack': ['over','flow']}, stack points to over and flow...</p>
  
  <pre><code>def generateGraph(fileName):
      heroDict = {}
      graph = {}
      with open(fileName) as inFile:
          for line in inFile:#go through each line
              name_comic = line.rstrip().replace('"', '').split('\t') #split into list with name and comic book as strings
              if name_comic[1] in heroDict: #if the comic book is already in the dictionary
                  heroDict[name_comic[1]] += [name_comic[0]] #add the hero into the comic's list of heroes
              else:
                  heroDict.update({name_comic[1]: [name_comic[0]]}) # update dictionary with name and comic book
      for i in heroDict.values():
          for j in i:
              if graph.has_key(j):
                  tempDict = copy.deepcopy(i)
                  tempDict.remove(j)
                  heroList = tempDict
                  graph[j] += heroList
              else:
                  tempDict = copy.deepcopy(i)
                  tempDict.remove(j)
                  heroList = tempDict
                  graph[j] = heroList
          print graph #&lt;========== the graph has duplicates, ie, values that are the same as their keys are present
      return graph
  </code></pre>
  
  <p>My question is, how can I implement the use of sets with dictionaries to prevent values that are the same as the key in question to be added to the key?</p>