目前,我有一个代码可以创建一个字典,其中包含一个键和一个列表作为其值:
e.g. dct = {A: [hello, only], B: [hello, that], C: [hello, same]}
我想比较字典的不同值并确定所有键共享的值。在此示例中,“ hello”由所有三个键共享。 python还是很新的!非常感谢!
答案 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'}