Как найти dict в списке dict на основе значения в списке? - PullRequest
0 голосов
/ 16 мая 2019

У меня есть список диктов, где каждый диктет содержит список, вот пример:

[{ "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

Я уверен, что каждое значение в каждом списке уникально, поэтому мне не нужно заботиться о случае, когда у меня будет одно и то же значение в разных списках.

Какой питонный способ сделать это, я попытался сделать некоторую математическую логику, разделив индекс на сумму и проверив, меньше ли он 1, но безуспешно.

Ответы [ 2 ]

2 голосов
/ 16 мая 2019

Зациклите список, затем элементы dict, затем проверьте значение и верните ключ, если найдете это значение:

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
0 голосов
/ 16 мая 2019
[list(item.keys())[0] for item in ls if val in list(item.values())[0]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...