Python 按升序和降序对有序信息进行排序
定义:Python 按升序和降序对有序信息进行排序,python,sorting,ordereddict,Python,Sorting,Ordereddict,定义: diction = {"Book":(1, 2), "Armchair":(2, 2), "Lamp":(1, 3)} diction = {"Lamp":(1, 3), "Armchair":(2, 2), "Book":(1, 2)} 如果要按项[“键”][1]的降序和按“键”的升序对词典进行排序,合适的方法是什么 所需输出: diction = {"Book":(1, 2), "Armchair":(2, 2), "Lamp":(1, 3)} diction = {"Lamp
diction = {"Book":(1, 2), "Armchair":(2, 2), "Lamp":(1, 3)}
diction = {"Lamp":(1, 3), "Armchair":(2, 2), "Book":(1, 2)}
如果要按项[“键”][1]的降序和按“键”的升序对词典进行排序,合适的方法是什么
所需输出:
diction = {"Book":(1, 2), "Armchair":(2, 2), "Lamp":(1, 3)}
diction = {"Lamp":(1, 3), "Armchair":(2, 2), "Book":(1, 2)}
在收到Sinan的正确答案后请注意,我没有询问升序或降序排序,您给我发送了相关链接!我问过同时做这两件事,但这并没有用锡南给出的减法解决 主要思想是从 这里是魔术发生的地方:
sorted(diction_list, key=lambda x: (-x[1][1], x[0]))
sorted
为您排序。它很擅长。如果将键
参数与sort一起使用,则可以为其提供一个用于要排序的每个项目的函数。
在本例中,我们给出了一个lambda
,它从元组-x[1][1]
(这是元组中的第二个值)和键x[0]
返回负值。负号使其排序相反。当然,这不适用于非数值
严格来说,OrderedDict
这件事不是必需的。我认为Python在3.6版之后(或者是3.7版?)保持了dict的有序性。OrderedDict始终保持相同的顺序,因此我们的dict保持独立于Python版本的顺序
有关更好的方法,请参阅Python文档中的。这是否回答了您的问题?还是这个?他们都没有问我的问题,请注意,我问的是升序和降序排序。下面@Sinan给出了正确的链接和答案。太好了,非常感谢!