擅长:python、mysql、java
<p>简单地查看<code>sent</code>中的每个字母并每次递增该字母的计数似乎要容易得多。在</p>
<pre><code>my_dict = {}
for lett in sent:
if lett in my_dict:
my_dict[lett] += 1
else:
# first entry
my_dict[lett] = 1
</code></pre>
<p>或者更简单地说,使用<code>dict.setdefault</code>:</p>
^{pr2}$
<p>但是请注意stdlib模块<code>collections</code>有一个名为<code>Counter</code>的对象,它正是这样做的。在</p>
<pre><code>from collections import Counter
my_dict = Counter(sent)
</code></pre>
<hr/>
<p>在用<code>filter</code>计数之前,可以进一步过滤掉不需要的字母</p>
<pre><code>alpha = set(string.ascii_letters)
filtered = filter(lambda ch: ch in alpha, sent)
my_dict = Counter(filtered)
</code></pre>