[英]Converting List into Dictionary of Sorted Tuples
我多次使用以下方法從字典的內容生成元組列表:
dispositions = list(dispositions.items())
在這種情況下,鍵是患者離開急診室的不同類型的方式,值是這些類型的計數。 現在,我想根據每個元組中的第二項對這些數據進行排序,所以我嘗試了這個:
dispositions = list(dispositions.items()).sort(key=lambda x: x[1])
令我驚訝的是,當我運行代碼時,我發現處置已設置為無。 我試着把它分成兩部分,如下:
dispositions = list(dispositions.items())
dispositions.sort(key=lambda x: x[1])
這行得通。 我得到了排序元組的列表,所以,我已經解決了我的問題。 但我想知道為什么第一個選項不起作用,這樣我才能成為一個更好的人(更好的程序員就是更好的人)? 有誰可以幫我離開這里嗎?
list.sort
不返回任何內容。 所以這:
dispositions = list(dispositions.items()).sort(key=lambda x: x[1])
將dispositions
為None
。
另一方面, sorted
返回一個新列表。 所以你會使用:
dispositions = sorted(dispositions.items(), key=lambda x: x[1])
這會將dispositions
為已排序的元組列表。
sort
function 不像你想象的那樣工作。 它不返回排序列表,它直接修改列表以使其排序。
例如,假設您有以下代碼:
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])
它將dispositions
為sort
的返回值,即None
。
另一方面,這是:
dispositions = list(dispositions.items())
dispositions.sort(key=lambda x: x[1])
沒有將dispositions
設置為sort
的值,它只是在dispositions
上調用sort
function ,這會導致列表按預期排序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.