【发布时间】:2018-06-16 10:15:28
【问题描述】:
我有一本这样的字典,
a= { 1:2, 3:4, 4:2, 8:3,7:4,9:3}
我想找到具有相同值的键。 我的输出应该是,
b=[ (1,4),(8,9),(3,7)]
我如何以 Python 的方式做到这一点。
【问题讨论】:
标签: python-3.x
我有一本这样的字典,
a= { 1:2, 3:4, 4:2, 8:3,7:4,9:3}
我想找到具有相同值的键。 我的输出应该是,
b=[ (1,4),(8,9),(3,7)]
我如何以 Python 的方式做到这一点。
【问题讨论】:
标签: python-3.x
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)
请注意,对于您给定的问题,您提到的输出是错误的。
【讨论】:
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() 将列表转换为元组。
【讨论】: