Python 3 - 返回搜索值的字典键

时间:2015-09-02 10:03:49

标签: python

如果搜索到的值包含在该列表中,我想要返回字典中列表的键。我似乎无法弄清楚,我最接近的是搜索密钥并返回列表:/

这是我的代码

mylist =   {'Bob':['Harry','Jenkins', 'Onion', 'Fred', 'Earl', 'Sam'],
            'Wayne':['Wallace', 'David', 'Eel', 'Perkins', 'Fruit', 'Angela'],
            'Jeff':['Aaron', 'Cameron', 'Keith', 'Winston', 'Geoff', 'Wayne']
            }


def tester(name):
     if name in mylist:
        print (True)
        print(mylist.get(name))

因此,如果我在字典中搜索'Jenkins',它应该返回'Bob'

2 个答案:

答案 0 :(得分:1)

迭代 dictionary items 查看当前列表是否包含搜索值,如果是,则返回密钥,否则返回"否"

<强>代码:

mylist =   {'Bob':['Harry','Jenkins', 'Onion', 'Fred', 'Earl', 'Sam'],
            'Wayne':['Wallace', 'David', 'Eel', 'Perkins', 'Fruit', 'Angela'],
            'Jeff':['Aaron', 'Cameron', 'Keith', 'Winston', 'Geoff', 'Wayne']
            }

def tester(name):
    for keys,value in mylist.items():
        if name in value:
            return keys
    return None

print(tester("Harry"))

<强>输出:

Bob

答案 1 :(得分:1)

next((key for key, names in mylist.items() if 'Fred' in names), None)

这将返回'Bob'。用变量替换'Fred'来搜索。如果找不到名称,则返回None