title: The most Pythonic way of checking if a value in a dictionary is defined/has zero length
body: <p>Say I have a dictionary, and I want to check if a key is mapped to a nonempty value.  One way of doing this would be the len function:</p>
  
  <pre><code>mydict = {"key" : "value", "emptykey" : ""}
  print "True" if len(mydict["key"]) &gt; 0 else "False"  # prints true
  print "True" if len(mydict["emptykey"]) &gt; 0 else "False"  # prints false
  </code></pre>
  
  <p>However, one can rely on the semantics of Python and how if an object is defined it evaluates to true and leave out the len call:</p>
  
  <pre><code>mydict = {"key" : "value", "emptykey" : ""}
  print "True" if mydict["key"] else "False"  # prints true
  print "True" if mydict["emptykey"] else "False"  # prints false
  </code></pre>
  
  <p>However, I'm not sure which is more Pythonic.  The first feels "explicit is better than implicit", however the second feels "simple is better than complex".</p>
  
  <p>I also wonder if the leaving out the len call could bite me as the dict I'm working with doesn't necessarily contain strings, but could contain other len-able types (lists, sets, etc).  OTOH, in the former (with the len call) if None gets stored as a value the code will blow up, whereas the non-len version will work as expected (will eval to false).</p>
  
  <p>Which version is safer and more Pythonic?</p>
  
  <p>Edit: clarifying assumptions: I <em>know</em> the key is in the dictionary, and I know values will be len-able.  I also cannot avoid having zero-length values enter the dictionary.</p>
  
  <p>Edit #2: It seems like people are missing the point of my question.  I'm not trying to determine the most Pythonic/safest way of checking if a key is present in a dictionary, I'm trying to check if <strong><em>a value has zero length or not</em></strong></p>