我正在写一个函数来计算一个国家出现在字典中的次数,并返回出现次数最多的国家。如果多于一个国家出现的话,那么它应该返回一个国家名单。Python在字典中计数国家
例词典:
{'Leonardo da Vinci': [("Portrait of Isabella d'Este", 1499, 63.0, 46.0, 'chalk', 'France'), ('The Last
Supper', 1495, 460.0, 880.0, 'tempera', 'Italy')], 'Pablo Picasso': [('Guernica', 1937,
349.0, 776.0, 'oil paint', 'Spain')]}
自法国,意大利和西班牙都只能在这本字典中出现一次函数应该返回
countries_appeared_most(dictionary1())
['France', 'Italy', 'Spain']
如果这些国家的一人,而不是出现2或3次功能将返回该国家。我现在用下面的代码搜索出现最多的艺术家,但我相信一些小小的变化可以帮助我返回出现最多的国家。有没有人有关于如何做到这一点的建议?感谢您的帮助
代码:
def countries_appeared_most(db):
if not db:
return None
maxcount = max(len(v) for v in db.values())
themax = [k for k, v in db.items() if len(v) == maxcount]
themax.sort()
return themax
Thanks are there一种不需要导入Counter的方法呢?我应该在问题中明确说明这一点,但我的代码不能依赖进口 – warrior4223
@ warrior4223编辑。 –
谢谢,我很感激。我得到错误计数器未定义我会尝试将名称更改为别的 – warrior4223