title: Python: Return all values that corresponds to a given key inside a dictionary
body: <p>I have the following dictionary, where the key of which corresponds to a value which inside of the rules of Rock Paper Scissors Lizard Spock it defeats. Ergo. 'scissors' defeats 'paper' and 'lizard'.</p>
  
  <pre><code>this_defeats_that = {'scissors': 'paper',
                       'paper': 'rock',
                       'rock': 'lizard',
                       'lizard': 'spock',
                       'spock': 'scissors',
                       'scissors': 'lizard',
                       'lizard': 'paper',
                       'paper': 'spock',
                       'spock': 'rock',
                       'rock': 'scissors'
  }
  </code></pre>
  
  <p>However, I find that when I</p>
  
  <pre><code>print this_defeats_that['scissors']
  </code></pre>
  
  <p>only 'lizard' is printed. Further investigation has shown me that, regardless of how I structure the dictionary, the print statement will only print the value that is the last value corresponding to the given key.</p>
  
  <p>What I need is for it to print is all the related values so that</p>
  
  <pre><code> # Example, this behavior should be consistent regardless of key.
  print this_defeats_that['scissors']
  </code></pre>
  
  <p>will print 'lizard' and 'paper' in any order. Preferably returned as a list.</p>
  
  <p>And so I attempted a list comprehension,</p>
  
  <pre><code>print [value for key, value in this_defeats_that.iteritems() if key == 'scissors']
  </code></pre>
  
  <p>but it too only returns the last value which corresponds to the key, i.e. 'lizard'.
  I'm now clueless as to how to proceed, and am in dire need of help.</p>