首页 > 解决方案 > 比较具有其他字典的列表的字典

问题描述

很抱歉标题可能造成的混乱。

我有一些由字典列表组成的字典,请参见下面的示例:

{spain: [{'gold':3}, {'silver':2}, {'bronze':0}], china:[{'gold':3}, {'silver':2}, {'bronze':0}]}

我通过以下方式获得了奖牌最多的国家:

dict([max(d.items(), key=lambda x: x[1][0]['gold'])])

但现在我需要知道如何找出是否有 2 个国家的金牌数量相同。

我需要知道它是返回 True 还是 False

标签: pythonlistdictionarycompare

解决方案


您可以做的就是列出所有金牌,如下所示:

gmedals = [k[0]['gold'] for k in d.values()]

并检查 gmedals 的长度是否与 gmedals 的集合相同。
因为 set 删除了重复项,如果长度相同,则意味着没有两个国家的金牌数量相同。否则我们返回 True。

len(gmedals) != len(set(gmedals)) # True for your example

推荐阅读