如何检查python字典键是否具有相同的值并提取这些值

时间:2012-04-09 02:24:30

标签: python dictionary

我想知道如何在字典中提取所有键的值。

例如,如果我有以下字典:

d = {'a': [num_1, num_2], 'b': [num_1],
                'c': [num_1,num_2, num_3]}

我想提取所有键的值,在这个例子中为num_1。

我怎样才能实现这个目标?

编辑:如何将公共值存储在列表中?

4 个答案:

答案 0 :(得分:0)

将所有值转换为集合,然后取其交集:

set.intersection(*(set(v) for v in d.values()))

答案 1 :(得分:0)

做这样的事情:

d = {'a': ['num_1', 'num_2'], 'b': ['num_1'], 'c': ['num_1', 'num_2', 'num_3']}

vals = d.values()
uniq = set(vals[0])

for lst in vals[1:]:
    uniq.intersection_update(lst)

# now `uniq` holds the intersected values:
print uniq
> set(['num_1'])

# to get the result as a list:
uniq = list(uniq)
print uniq
> ['num_1']

答案 2 :(得分:0)

我奇怪的工作方式

vals = [i for v in d.values() for i in v]
set([i for i in vals if vals.count(i) == len(d.values())])

答案 3 :(得分:-1)

list(set(d ['a'])& set(d ['c'])& set(d ['b']))

这应该有帮助