将List转换为有序元组的字典



我已经多次使用以下方法从字典的内容生成一个元组列表:

dispositions = list(dispositions.items())

在本例中,键是患者离开急诊科的不同方式,值是这些类型的计数。现在,我想根据每个元组中的第二项对数据进行排序,所以我尝试这样做:

dispositions = list(dispositions.items()).sort(key=lambda x: x[1])

令我惊讶的是,当我运行代码时,我发现配置被设置为None。我试着把它分成两部分,如下所示:

dispositions = list(dispositions.items())
dispositions.sort(key=lambda x: x[1])

这工作!我得到了一个有序元组的列表。所以,我已经解决了我的问题,但我想知道为什么第一个选项不起作用,这样我就可以成为一个更好的人(更好的程序员是更好的人)。有人能帮我一下吗?

list.sort不返回任何内容。所以这:

dispositions = list(dispositions.items()).sort(key=lambda x: x[1])

设置dispositionsNone

另一方面,sorted返回一个新列表。所以你可以使用:

dispositions = sorted(dispositions.items(), key=lambda x: x[1])

dispositions设置为一个已排序的元组列表。

sort函数并不像您想象的那样工作。它不会返回一个已排序的列表,而是直接修改列表,使其已排序。

例如,假设你有这样的代码:

a = [0, 2, 1]
a.sort()

a现在将更改为[0, 1, 2]。如果我使用a = a.sort()而不是a.sort(),它将被设置为None

:

dispositions = list(dispositions.items()).sort(key=lambda x: x[1])

的功能与以下相同:

dispositions = list(dispositions.items())
dispositions = dispositions.sort(key=lambda x: x[1])

设置dispositionssort的返回值,即None

另一方面,这个:

dispositions = list(dispositions.items())
dispositions.sort(key=lambda x: x[1])

没有将dispositions设置为sort的值,它只是在dispositions上调用sort函数,这导致列表按预期排序。

相关内容

  • 没有找到相关文章

最新更新