как найти пару ключ-значение, которая содержит то же значение или расширенный набор значений - PullRequest
0 голосов
/ 05 февраля 2020

d = {1: ['a'], 3: ['b','c'], 4: ['a','d'], 5: ['b','c','d']}, это только пример. У меня есть большой файл такой пары ключ-значение. У меня вопрос, как я могу найти значения, которые присутствуют в нескольких парах ключ-значение. Я хочу получить эту пару ключ-значение. В этом примере первое значение, соответствующее ключу 1, равно 'a', и оно присутствует в 4:['a','d'], поэтому я хочу получить пару 4: ['a', 'd'].

Обратите внимание: у меня огромный словарь, содержащий более миллионов записей.

Ответы [ 2 ]

0 голосов
/ 05 февраля 2020

Используя понимание списка, вы можете достичь этого


def findData(d, findvalue):
     return [(i,v) for i , v in d.items() if findvalue in v ]

text = 'a'
print(findData(d,text))
0 голосов
/ 05 февраля 2020

Полагаю, что это может соответствовать вашему случаю:

def findInDict(d, element):
    l = []
    for x, i in d.items():
        if element in i:
            l.append((x, i))
    return l

(укажите ваш dict как d и элемент, для которого вы хотите найти пары ключ-значение как element)

Пример:

findInDict({1: ['a'], 3: ['b','c'], 4: ['a','d'], 5: ['b','c','d']}, "a")

вернет вам

[(1, ['a']), (4, ['a', 'd'])]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...