Py学习  »  Python

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

mathsman • 5 年前 • 1565 次点击  

在为今年的代码问题做准备的时候,我遇到了以下奇怪的问题。假设我们有以下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']

这给我提出了两个问题:

  1. 为什么原始的按键排序列表 c 之前 b 尽管事实上,当遍历字典时,它第一次看到 4 带着钥匙 ?
  2. 为什么颠倒的顺序保持这个顺序,而不是颠倒在原始排序中找到的键的顺序?

我相信有其他方法可以解决这个问题,但现在我想知道 sorted 方法是导致这种情况的原因。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/50104
 
1565 次点击  
文章 [ 1 ]  |  最新文章 5 年前