【问题标题】:Comparing dicts of lists that have other dicts比较具有其他字典的列表的字典
【发布时间】:2020-04-29 22:11:50
【问题描述】:

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

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

{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 个国家的金牌数量相同。

我需要知道它返回的是真还是假

【问题讨论】:

  • 能否详细说明您的问题?如果有 2 个国家的奖牌总数相同,您要返回 True/False 吗?
  • 好的,编辑问题以澄清这一点。
  • @RulerOfJustice 是的,如果有 2 个国家的金牌总数相同,我想知道是真还是假。

标签: python list dictionary compare


【解决方案1】:

你可以做一个像这样列出所有金牌的清单:

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

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

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

【讨论】:

    猜你喜欢
    • 2021-04-21
    • 1970-01-01
    • 2022-11-22
    • 1970-01-01
    • 1970-01-01
    • 2012-02-21
    • 2023-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多