title: Difference between defaultdict(lambda:None) and defaultdict(int)
body: <p>What exactly does the TYPE <code>lambda</code> do when used with <code>defaultdict</code>? I have this example and works fine even for <code>int</code>, <code>list</code> &amp; <code>lambda</code> as argument:</p>
  
  <pre><code>d = defaultdict(int)
  d['one'] = lambda x:x*x
  d['one'](2)
  4
  
  d = defaultdict(list)
  d['one'] = lambda x:x*x
  d['one'](2)
  4
  
  d = defaultdict(lambda: None)
  d['one'] = lambda x:x*x
  d['one'](2)
  4
  </code></pre>
  
  <p>I have the same result each time. So what is the main reason to initialize with lambda "default (<code>lambda: None</code>)"? Looks <code>defaultdict</code> dictionary does not care about the what TYPE of argument is passed in.</p>