<p>您可以使用<code>zip</code>从元组列表中提取国家的名称,然后使用<a href="https://docs.python.org/3/library/collections.html#collections.Counter" rel="nofollow noreferrer">collections.Counter</a>来计算国家名称的频率</p>
<pre><code>from collections import Counter
country_city_tuples= [('Netherlands', 'Alkmaar'),
('Netherlands', 'Tilburg'),
('Netherlands', 'Den Bosch'),
('Netherlands', 'Eindhoven'),
('Spain', 'Madrid'),
('Spain', 'Barcelona'),
('Spain', 'Cordoba'),
('Spain', 'Toledo'),
('Italy', 'Milano'),
('Italy', 'Roma')]
#Extract out country names using zip and list unpacking
country_names, _ = zip(*country_city_tuples)
#Count the number of countries using Counter
print(dict(Counter(country_names)))
</code></pre>
<p>为了不使用<code>collections</code>,我们可以使用字典来收集频率</p>
<pre><code>country_city_tuples= [('Netherlands', 'Alkmaar'),
('Netherlands', 'Tilburg'),
('Netherlands', 'Den Bosch'),
('Netherlands', 'Eindhoven'),
('Spain', 'Madrid'),
('Spain', 'Barcelona'),
('Spain', 'Cordoba'),
('Spain', 'Toledo'),
('Italy', 'Milano'),
('Italy', 'Roma')]
#Extract out country names using zip and list unpacking
country_names, _ = zip(*country_city_tuples)
result = {}
#Count each country
for name in country_names:
result.setdefault(name,0)
result[name] += 1
print(result)
</code></pre>
<p>两种情况下的输出都是相同的</p>
<pre><code>{'Netherlands': 4, 'Spain': 4, 'Italy': 2}
</code></pre>