我正在寫一個函數來計算一個國家出現在字典中的次數,並返回出現次數最多的國家。如果多於一個國家出現的話,那麼它應該返回一個國家名單。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