在字典中搜索值?

时间:2012-03-03 02:50:30

标签: python

所以说我有一个字典,用户,它有另一个以他们的uid命名的字典,并包含电子邮件,姓名等信息。说我想搜索他们的名字,并希望得到他们的uid。任何理智的方式吗?

字典结构的一个例子:

users = {1: {"name": "John Doe", "email": "johndoe@gmail.com"},
         2: {"name": "Jane Doe", "email": "janedoe@gmail.com"}}

3 个答案:

答案 0 :(得分:3)

[uid for uid, attrs in users.items() if attrs['name'] == name_you_are_looking_for]

答案 1 :(得分:0)

如果您经常执行这些类型的查询,只需使用此dict格式就无法满足您的需求。

您应该在每个字段中搜索一个dict,或者考虑使用关系解决方案,例如sqlite。

答案 2 :(得分:0)

这更容易理解:

def get_uid(users, target):
    for key in users.keys():
        if users[key].get("name") == target:
            return key

使用它:

>>> print get_uid(users, "Jane Doe")
... 2