具有匹配值的Python字典键

时间:2018-06-16 10:15:29

标签: python-3.x

我有这样的字典,

a= { 1:2, 3:4, 4:2, 8:3,7:4,9:3}

我想找到具有相同值的键。 我的输出应该是,

b=[ (1,4),(8,9),(3,7)]

我如何以pythonic方式做到这一点。

2 个答案:

答案 0 :(得分:0)

a = {1:2, 3:4, 4:2, 8:3,7:4,9:3, 5: 2}

valueDict = {}

mulKeys = []

for key, value in a.items():

    if valueDict.get(value) == None:

        valueDict[value] = [key]

    else:

        preExisting = valueDict[value]
        preExisting.append(key)
        valueDict[value] = preExisting




nested_lst_of_tuples = [tuple(l) for l in valueDict.values()]

print(nested_lst_of_tuples)

请注意,对于您提出的问题,您提到的输出是错误的。

答案 1 :(得分:-1)

a={ 1:2, 3:4, 4:2, 8:3,7:4,9:3} 
b=set(a.values())
l=[]
for i in b:
    l.append(tuple([k for k,v in a.items() if v == i]))

print l # [(1, 4), (8, 9), (3, 7)]

使用设置可以轻松获得字典中的不同值。

tuple()将列表转换为元组。