Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 按升序和降序对有序信息进行排序_Python_Sorting_Ordereddict - Fatal编程技术网

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给出了正确的链接和答案。太好了,非常感谢!