我正在嘗試理解 python 中的字典排序,但我被這個令人困惑的問題難住了(我確定這是個愚蠢的問題,但我無法解碼這個問題)。
所以我有這個嵌套的字典:
some_dict={'10_key0': {'pass_fail': 1, 'scoring': 94}, '10_key1': {'pass_fail': 0, 'scoring': 38}}
我現在嘗試像這樣排序:
>>> sorted(some_dict, key=some_dict.get('pass_fail'), reverse=True)
['10_key1', '10_key0']
我不明白輸出 - 我原以為它應該是:
['10_key0', '10_key1']
不是這樣嗎?我錯過了什么?
uj5u.com熱心網友回復:
你key在這兒了。some_dict.get('pass_fail')計算結果為None,因此您的呼叫本質上等同于sorted(some_dict, key=None, reverse=True),這與根本不傳遞 a 相同key。您的意思是傳遞一個查看當前正在考慮的元素的函式:
key=lambda k:some_dict[k]["pass_fail"]
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/345588.html
