在python字典中多键值排序


a=[{"name":"sri",rank":5},{"name":"harish","rank":1},{"name":"adhya",rank":5},{"name":"mathi","rank":"NUL"}]
print(sorted(a,key=lambda i: (i['rank'], i['name'])) )

TypeError: '<' not supported between instances of 'str' and 'int'

希望输出如下:

a=[{"name":"harish","rank":1},{"name":"adhya",rank":5},{"name":"sri",rank":5},{"name":"mathi","rank":"NUL"}]

Casti['rank']tostr():

print(sorted(a, key=lambda i: (str(i['rank']), i['name'])))
# [{'name': 'harish', 'rank': 1}, {'name': 'adhya', 'rank': 5}, {'name': 'sri', 'rank': 5}, {'name': 'mathi', 'rank': 'NUL'}]

最新更新