如何基于列表中的值在字典列表中查找字典?

时间:2019-05-15 23:37:57

标签: python algorithm list

我有一个字典列表,其中每个字典都包含一个列表,这是一个示例:

[{ "1": [0,1,2,3]},{ "2": [4,5]},{ "3": [6,7,8,9,10,11]},{ "4": [12] }]

我正在努力构建一个将值作为输入并返回相应键的函数:

print(somefunc(12)) # Should print 4
print(somefunc(5)) # should print 2

我确定每个列表中的每个值都是唯一的,因此不必担心在不同列表中具有相同值的情况。

执行此操作的pythonic方式是什么,我试图通过对总和指定索引并检查其是否小于1来进行一些数学逻辑运算,但是没有成功。

2 个答案:

答案 0 :(得分:2)

遍历列表,然后遍历字典项,然后检查值,如果找到该值,则返回键:

def somefunc(val):
    l = [{ "1": [0,1,2,3]},{ "2": [4,5]},{ "3": [6,7,8,9,10,11]},{ "4": [12] }]

    for dictionary in l:
        for key, v_list in dictionary.items():
            if val in v_list:
                return key

答案 1 :(得分:0)

[list(item.keys())[0] for item in ls if val in list(item.values())[0]]