我在列表中有很多字典。字典列表中Python最常見的值
[{'key3': '2', 'key2': '12', 'key1': '1'},
{'key3': '4', 'key2': '12', 'key1': '1'},
{'key3': '3', 'key2': '1', 'key1': '1'},
{'key3': '5', 'key2': '4', 'key1': '1'}]
如何獲取key2的最新值?這個例子應該打印12?
我在列表中有很多字典。字典列表中Python最常見的值
[{'key3': '2', 'key2': '12', 'key1': '1'},
{'key3': '4', 'key2': '12', 'key1': '1'},
{'key3': '3', 'key2': '1', 'key1': '1'},
{'key3': '5', 'key2': '4', 'key1': '1'}]
如何獲取key2的最新值?這個例子應該打印12?
試試這個:
my_map = {}
for entry in my_list:
try:
my_map[entry['key2']] += 1
except KeyError:
my_map[entry['key2']] = 1
print(max(my_map, key=my_map.get))
您將創建一個字典(my_map)持有計數。在列表的每個元素上,將key2值存儲在地圖中並遞增計數。我們需要try/except方法,這樣如果key不存在,我們可以將它設置爲1,否則我們就增加它。
在for循環my_map年底將是這樣的:{'1': 1, '4': 1, '12': 2}
最後一行得到最大值在列表中,具有最高計數KEY2。我們提供key=lambda a: my_map[a]
來告訴max函數使用字典的值作爲最大值,而不是僅使用鍵。
這不是很好,我的意思是key2的最常見值 – lukassz
更新了新需求的代碼,給它一個鏡頭。 – CamJohnson26
感謝它的完美。我想知道,有可能以更短的方式做到這一點? – lukassz
我認爲'my_list [0] ['key2']'是你正在尋找的答案*(通過最近和你想要的輸出,我假設你的列表中的第0項)* –
你是什麼意思最近?我們怎麼會知道第二個問題的答案? – RafaelC
等待,最近還是常見?如果你的意思是最近的,那麼你的意思是什麼?最後一個值,第一個值? – ShadowRanger