在为今年的代码问题做准备的时候,我遇到了以下奇怪的问题。假设我们有以下Python字典:
d = {'a':5, 'b':4, 'c':4, 'd':2, 'e':3, 'f':1}
如果我们按字典的键来分类,我们会得到以下结果:
>>>print(sorted(d, key=d.get))
['f','e','d','c','b','a']
现在,如果我们试图颠倒这个顺序,我们得到以下结果:
>>>print(sorted(d, key=d.get, reverse=True))
['a','c','b','d','e','f']
这给我提出了两个问题:
-
为什么原始的按键排序列表
c
之前
b
尽管事实上,当遍历字典时,它第一次看到
4
带着钥匙
乙
?
-
为什么颠倒的顺序保持这个顺序,而不是颠倒在原始排序中找到的键的顺序?
我相信有其他方法可以解决这个问题,但现在我想知道
sorted
方法是导致这种情况的原因。