擅长:python、mysql、java
<p>有时最好是多行操作,这就是其中之一。然而,有时尝试避免这种“Doesthiskeyexist”逻辑是合理的,为此,可以使用<a href="http://docs.python.org/2/library/collections.html#collections.defaultdict" rel="nofollow">collections.defaultdict</a>或<a href="http://docs.python.org/2/library/stdtypes.html#dict.setdefault" rel="nofollow">^{<cd1>}</a>。现在只是为了好玩,这里有一个可怕的一行,你不应该使用(但在行为上等同于你的if/else):</p>
<pre><code>d.setdefault(key, {'idx': []})['idx'] += [2] if d[key]['idx'] else [1]
</code></pre>
<p>请注意,这比原始版本效率低,因为它需要额外的查找,并且每次使用时都会创建不必要的对象。你知道吗</p>