确定字典中值的位置,Python

0 投票
5 回答
6494 浏览
提问于 2025-04-16 08:27

有一个字典,这个字典的键可能从0开始,值可以是:a、b、c、d、e。每次这些值可能会被分配到不同的键上。字典的大小也可能会变化。

我对两个值感兴趣。我们称它们为b和d。有没有什么算法可以判断b出现得比d早的情况(也就是说,b的键比d的键小)和d出现得比b早的情况(也就是说,d的键比b的键小)呢?

5 个回答

0

字典是一种无序的键值对集合。也就是说,字典里的每一对数据都有一个“键”和一个“值”,但这些键值对的顺序是没有固定的。使用dict.keys()这个方法时,得到的结果不一定每次都一样。那你为什么不直接用列表来做你想做的事情呢?

1

如果这些值是可以被哈希的,那么你可以生成一个反向字典来检查这些值。否则,你就需要用暴力破解的方法来解决了。

def dictfind(din, tsent, fsent):
  for k in sorted(din.iterkeys()):
    if din[k] == tsent:
      return True
    if din[k] == fsent:
      return False
  else:
    raise ValueError('No match found')

D = {0:'a', 1:'b', 2:'c', 3:'d', 4:'e'}

print dictfind(D, 'b', 'd')
5

字典是没有顺序的。所以你说的“b的键比d的小”是对的。

现在,看起来你可以交换键和值...

撰写回答