Python 3.x 具有匹配值的Python字典键
我有一本这样的字典Python 3.x 具有匹配值的Python字典键,python-3.x,Python 3.x,我有一本这样的字典 a= { 1:2, 3:4, 4:2, 8:3,7:4,9:3} 我想找到具有相同值的键。 我的输出应该是 b=[ (1,4),(8,9),(3,7)] 我该如何以蟒蛇式的方式做到这一点 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),
a= { 1:2, 3:4, 4:2, 8:3,7:4,9:3}
我想找到具有相同值的键。
我的输出应该是
b=[ (1,4),(8,9),(3,7)]
我该如何以蟒蛇式的方式做到这一点
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)]
使用set可以轻松获得字典中的不同值
tuple()将列表转换为tuple
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)
请注意,对于给定的问题,您提到的输出是错误的。他希望将其作为元组列表。谢谢。错过了。虽然这段代码可能会回答这个问题,但提供关于它如何和/或为什么解决这个问题的额外上下文将提高答案的长期价值。