Python在字典中找到与许多值相关联的键

时间:2017-10-22 20:53:19

标签: python dictionary

我需要在字典中搜索两个元素的值,而不是它们的键。

我有以下代码,但它没有搜索dict的值

for key in val["timeSlot"]:
    for value in val[key]:
        if test_date in value:
            print "found it!"

任何想法?

2 个答案:

答案 0 :(得分:2)

字典的一个技巧是,虽然每个键都是唯一的,但值可以重复。这意味着每个值可以对应于多个键。所以......

    def get_dict_keys(d, val):
        matches = []
        for k in d.keys():
            if d[k] == val:
                matches.append(k)
        return matches

如果你喜欢列表推导......

    def get_dict_keys(d, val):
        return [k for k in d.keys() if d[k] == val]

答案 1 :(得分:0)

def get_key(dictionary,value):
    for k in dictionary.keys():
        if value in dictionary[k]:
            return k

使用d.keys() - 它返回字典中所有键的list。在for key in val["timeslot"]循环 -

中调用这样的函数
get_key(val[key],test_date)