有没有比这更像python的方法来遍历字典键来查找值?

2024-04-24 13:18:27 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是一个示例词典,colors

{
    "Red" : {
        "members" : {
            "153950039532134112" : {
                "rank" : 1,
                "score" : 43,
                "time" : 1530513303
            }
        },
        "rank" : 2,
        "score" : 43
    },
    "Blue" : {
        "members" : {
            "273493248051539968" : {
                "rank" : 1,
                "score" : 849,
                "time" : 1530514923
            },
            "277645262486011904" : {
                "rank" : 2,
                "score" : 312,
                "time" : 1530513964
            },
            "281784064714487810" : {
                "rank" : 3,
                "score" : 235,
                "time" : 1530514147
            }
        },
        "rank" : 1,
        "score" : 1396
    }
}

为了这个例子,让我们假设这个字典中有更多的颜色命名键。现在,假设我在寻找一个特定的成员ID

^{pr2}$

有没有一种更简单,可能只有一条线的方法可以做到这一点?在


Tags: id示例字典time颜色成员bluered
3条回答
next((k for k, v in colors.items() if member_id in v['members']), None)

计算为具有member_id的第一个颜色键,如'Blue'(如果找不到,None)。在

生成器表达式是惰性的,因此一旦找到匹配项,它就会停止搜索。在

以下是一种简单的方法:

member_id="273493248051539968"

[k for k, v in colors.items() if member_id in v['members']]

输出:

^{pr2}$

这是另一个使用^{}generator expression

return any(member_id in color['members'] for color in colors.values())

相关问题 更多 >