python - 比较具有其他字典的列表的字典
问题描述
很抱歉标题可能造成的混乱。
我有一些由字典列表组成的字典,请参见下面的示例:
{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
解决方案
您可以做的就是列出所有金牌,如下所示:
gmedals = [k[0]['gold'] for k in d.values()]
并检查 gmedals 的长度是否与 gmedals 的集合相同。
因为 set 删除了重复项,如果长度相同,则意味着没有两个国家的金牌数量相同。否则我们返回 True。
len(gmedals) != len(set(gmedals)) # True for your example
推荐阅读
- sql - 如果在oracle数据库中为空的表收集统计信息,那么有什么方法可以恢复该表的原始统计信息?
- javascript - 使指示器绕一圈移动
- material-ui - 带有材质 ui 图标的动态图标导入
- reactjs - 在路线之外获取路线位置
- python-3.x - 我应该如何解决 tkinter 中的这个按钮错误?
- python - 在 GPU 上训练分类器时了解硬件使用情况
- javascript - 使用 JavaScript 正则表达式确保字符串中的唯一部分
- swift - 在 Swift 中,计算 2 个值的总和两次或计算一次并将结果存储在变量中会更快吗?
- python-3.x - Python tkinter 窗口调用导致系统重启
- ios - 如何删除 CKRecord 中的键和对象?