如何找到字典中相同的值

时间:2018-11-01 02:21:41

标签: python arrays list dictionary filter

目前,我有一个代码可以创建一个字典,其中包含一个键和一个列表作为其值:

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

我想比较字典的不同值并确定所有键共享的值。在此示例中,“ hello”由所有三个键共享。 python还是很新的!非常感谢!

3 个答案:

答案 0 :(得分:2)

set.intersection(*[set(list) for list in dct.values()])

将为您服务。

答案 1 :(得分:0)

您要查找的是固定交集; 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)

答案 2 :(得分:0)

首先,您应该正确创建字典。
试试这个代码。

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

输出。

{'hello'}