title: Why do dict keys support list subtraction but not tuple subtraction?
body: <p>Presumably dict_keys are supposed to behave as a set-like object, but they are lacking the <code>difference</code> method and the subtraction behaviour seems to diverge.</p>
  
  <pre><code>&gt;&gt;&gt; d = {0: 'zero', 1: 'one', 2: 'two', 3: 'three'}
  &gt;&gt;&gt; d.keys() - [0, 2]
  {1, 3}
  &gt;&gt;&gt; d.keys() - (0, 2)
  TypeError: 'int' object is not iterable
  </code></pre>
  
  <p>Why does dict_keys class try to iterate an integer here?  Doesn't that violate duck-typing? </p>
  
  <hr>
  
  <pre><code>&gt;&gt;&gt; dict.fromkeys(['0', '1', '01']).keys() - ('01',)
  {'01'}
  &gt;&gt;&gt; dict.fromkeys(['0', '1', '01']).keys() - ['01',]
  {'1', '0'}
  </code></pre>