Как найти одинаковые значения в словаре - PullRequest
0 голосов
/ 01 ноября 2018

В настоящее время у меня есть код, который создает словарь с ключом и списком в качестве значения:

e.g. dct = {A: [hello, only], B: [hello, that], C: [hello, same]}

Я бы хотел сравнить различные значения словаря и определить значения, которые являются общими для всех ключей. В этом примере «привет» используется всеми тремя ключами. Все еще довольно плохо знаком с питоном! Спасибо вам большое!

Ответы [ 3 ]

0 голосов
/ 01 ноября 2018

То, что вы ищете, является пересечением множества; класс set реализует эту функциональность. Это будет работать для вас пример:

setA = set(dct['A'])
setB = set(dct['B'])
setC = set(dct['C'])
shared = setA.intersection(setB, setC)

Вы можете обобщить это, просто поместив все свои наборы в список наборов и затем сделав пересечение следующим образом:

list_of_sets=[]
for value in dct.values:
    list_of_sets.append(set(value))

shared = setA.intersection(*list_of_sets)
0 голосов
/ 01 ноября 2018

Прежде всего вы должны правильно создать словарь.
Попробуйте этот код.

dct = {'A':['hello', 'only'], 'B':['hello', 'that'], 'C':['hello', 'same']}
s=set.intersection(*[set(list) for list in dct.values()])
print(s)

выход.

{'hello'}
0 голосов
/ 01 ноября 2018
set.intersection(*[set(list) for list in dct.values()])

будет работать для вас.

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