我想映射一个将字典作为输入并返回键列表的函数。 列表中的键必须只有字典中存在的唯一值。如何检查字典中存在的重复值?
所以,这就是我所做的。
bDict={}
for key,value in aDict.items():
if bDict.has_key(value) == False:
bDict[value]=key
else:
bDict.pop(value,None)
这是输出:
>>> aDict.keys()
Out[4]: [1, 3, 6, 7, 8, 10]
>>> aDict.values()
Out[5]: [1, 2, 0, 0, 4, 0]
>>> bDict.keys()
Out[6]: [0, 1, 2, 4]
>>> bDict.values()
Out[7]: [10, 1, 3, 8]
但是,预期的输出应该是bDict.values()
:[*1,3,8*]
一个想法是遍历键上的字典,并将值作为键插入到另一个字典中。如果新密钥存在,则您的原始字典中有一个双重值。 – holroy
对原始字典进行普通遍历,并且您将同时具有键和值。如果你不知道怎么做,请找一本关于字典的教程 – holroy
所以,这就是我所做的。 值= aDict.values() 键= aDict.keys() bDict = {} 为键,在aDict.items()值: 如果bDict.has_key(值)==题: bDict [值] =键 否则: bDict.pop(值,无) 这是输出: aDict.keys() 输出[4]:[1,3,6,7,8,10] aDict .values() 缺货[5]:[1,2,0,0,4,0] bDict.keys() 缺货[6]:[0,1,2,4] bDict.values () Out [7]:[10,1,3,8] 但预期的输出应该是bDict.Values:[1,3,8] 编辑我原来的帖子,因为这是混乱。 –