擅长:python、mysql、java
<p>如果我们不接触所有其他代码,函数可以这样重写:</p>
<pre><code>from collections import defaultdict
....
def get_country_count():
country_count = defaultdict(int)
for ip in get_ips_from_log():
country_count[ip_tools.get_geo_country(ip)] += 1
return country_count
</code></pre>
<p>或者如果使用<code>get_geo_country</code>花费很大:</p>
^{pr2}$
<p><code>defaultdict</code>仅用于某个原因,不要编写这样难看的构造:</p>
<pre><code>def get_country_count():
....
for ....
country = ip_tools.get_geo_country(ip)
if country in country_count:
country_count[country] += ...
else:
country_count[country] = ...
</code></pre>