将列表转换为有序元组字典
我多次使用以下方法从字典的内容生成元组列表:
dispositions = list(dispositions.items())
在这种情况下,键是患者离开急诊室的不同类型的方式,值是这些类型的计数。现在,我想根据每个元组中的第二项对这些数据进行排序,所以我尝试了这个:
dispositions = list(dispositions.items()).sort(key=lambda x: x[1])
dispositions = list(dispositions.items()).sort(key=lambda x: x[1])
令我惊讶的是,当我运行代码时,我发现 dispositions 已设置为 None。我试着把它分成两部分,如下:
dispositions = list(dispositions.items())
dispositions.sort(key=lambda x: x[1])
这有效!我得到了排序的元组列表。所以,我已经解决了我的问题,但我想知道为什么第一个选项不起作用,这样我就可以成为一个更好的人(更好的程序员是更好的人)。有人可以帮我从这里出去吗?
回答
list.sort
不返回任何东西。所以这:
设置dispositions
为None
.
sorted
另一方面返回一个新列表。所以你会使用:
dispositions = sorted(dispositions.items(), key=lambda x: x[1])
这将设置dispositions
为元组的排序列表。