如何对json进行二次排序?

比如:

a = {1: [4, 7], 2: [2, 6], 3: [4, 9], 4: [1, 8], 5: [5, 5]}

先根据 value 的第一个参数排序,

b = sorted(a.items(), key=lambda item: item[1][0], reverse=True)

结果如下:

[(5, [5, 5]), (1, [4, 7]), (3, [4, 9]), (2, [2, 6]), (4, [1, 8])]

发现有相同,再根据第二个参数进行内部排序。
结果如下:

[(5, [5, 5]), (3, [4, 9]), (1, [4, 7]), (2, [2, 6]), (4, [1, 8])]

这个就不知道怎么解决了?

阅读 3.1k
2 个回答

直接拿整個 list 去排就好了:

a = {1: [4, 7], 2: [2, 6], 3: [4, 9], 4: [1, 8], 5: [5, 5]}
b = sorted(a.items(), key=lambda item: item[1], reverse=True)

結果:

[(5, [5, 5]), (3, [4, 9]), (1, [4, 7]), (2, [2, 6]), (4, [1, 8])]

我回答過的問題: Python-QA

a={1: [4, 7], 2: [2, 6], 3: [4, 9], 4: [1, 8], 5: [5, 5]}
b=sorted(a.items(),cmp=lambda a,b: b[1][1] - a[1][1] if a[1][0] == b[1][0] else b[1][0] - a[1][0])
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题