擅长:python、mysql、java
<p>听写理解是不可能的(至少是容易或直接的)。</p>
<p>在理解集合或列表的情况下,可能但可能滥用语法:</p>
<pre><code># your code:
d={}
for word in words:
if word[0].lower() in 'aeiou':
d.setdefault(word[0].lower(),[]).append(word)
# a side effect set comprehension:
index={}
r={index.setdefault(word[0].lower(),[]).append(word) for word in words
if word[0].lower() in 'aeiou'}
print r
print [(k, len(d[k])) for k in sorted(d.keys())]
print [(k, len(index[k])) for k in sorted(index.keys())]
</code></pre>
<p>印刷品:</p>
<pre><code>set([None])
[('a', 17094), ('e', 8734), ('i', 8797), ('o', 7847), ('u', 16385)]
[('a', 17094), ('e', 8734), ('i', 8797), ('o', 7847), ('u', 16385)]
</code></pre>
<p>集合理解在遍历<code>words</code>列表之后生成一个集合,其中包含<code>setdefault()</code>方法的结果。本例中<code>set([None])</code>的总和。它也会产生你想要的副作用,产生你的名言列表。</p>
<p>它不像直循环结构那样可读(IMHO),应该避免(IMHO)。它不短,也可能不快。这是关于Python的有趣的琐事,而不是有用的——IMHO。。。也许是为了赌赢?</p>