1
我想按小到大的確認數排序列表。如果確認爲空,則確認號碼與零相同。我得到了以下錯誤。如何解決它?用lambda排序的Python
之前排序
[
{
'id':'1',
'confirmation':'20',
},
{
'id':'2',
'confirmation':'10',
},
{
'id':'3'
}
]
後排序
[
{
'id':'3'
},
{
'id':'2',
'confirmation':'10',
},
{
'id':'1',
'confirmation':'20',
}
]
測試
$ python3
Python 3.4.3 (default, Nov 17 2016, 01:08:31)
>>> dict1 = {"id":1, "confirmation":20}
>>> dict2 = {"id":2, "confirmation":10}
>>> dict3 = {"id":3}
>>> list = [dict1, dict2, dict3]
>>> sorted_list = sorted(list, key=lambda x: x['confirmation'], reverse=True)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in <lambda>
KeyError: 'confirmation'
更新1
>>> sorted_list = sorted(list, key=lambda x: int(x.get('confirmation', 0)), reverse=False)
>>> sorted_list
[{'id': 3}, {'id': 2, 'confirmation': 10}, {'id': 1, 'confirmation': 20}]