小编mat*_*man的帖子

为什么Python的sorted()方法不能颠倒字典中具有相同值的键的顺序?

当我遇到以下怪异问题时,我正在为解决一些古老的Code Advent问题做准备。假设我们有以下Python字典:

d = {'a':5, 'b':4, 'c':4, 'd':2, 'e':3, 'f':1}
Run Code Online (Sandbox Code Playgroud)

如果按字典的键对字典进行排序,则会得到以下结果:

>>>print(sorted(d, key=d.get))
['f','e','d','c','b','a']
Run Code Online (Sandbox Code Playgroud)

现在,如果我们尝试逆转此顺序,则会得到以下结果:

>>>print(sorted(d, key=d.get, reverse=True))
['a','c','b','d','e','f']
Run Code Online (Sandbox Code Playgroud)

这给我提出了两个问题:

  1. 为什么在遍历字典时,它第一次看到是与键有关的,为什么原始的按键排序仍在c之前列出?b4b
  2. 为什么颠倒的顺序保持这种顺序,而不是颠倒原始排序中找到的键的顺序?

我确定还有其他方法可以解决此问题,但现在我对sorted导致此问题的方法的机理感到好奇。

python sorting dictionary python-3.x

4
推荐指数
1
解决办法
58
查看次数

标签 统计

dictionary ×1

python ×1

python-3.x ×1

sorting ×1