我有这样的字典,
a= { 1:2, 3:4, 4:2, 8:3,7:4,9:3}
我想找到具有相同值的键。 我的输出应该是,
b=[ (1,4),(8,9),(3,7)]
我如何以pythonic方式做到这一点。
答案 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()将列表转换为元组。