首页 > 编程知识 正文

数据排序的4种方法,冒泡排序的三种方法

时间:2023-05-04 12:43:27 阅读:159109 作者:352

引言

Dictionary是一种重要的数据结构,通过映射key和value来存储数据。 Python的默认词典是无序的数据结构。 和列表一样,sorted (可以使用函数键对词典进行排序。 但是,只返回根据key排序的列表,这通常不是我们想要的。 您可能希望按value而不是key排序,或者希望返回排序后的词典而不是列表。 本文介绍了两种简单的方法。 您可以使用这些方法对Python词典进行排序并返回所需的结果。

整理一个列表

因为讨论的是排序,所以我想首先指出这两个排序函数之间非常重要的区别。 看看列表的不同吧。 假设有两个列表:

可以通过以下两种方法对列表进行排序:使用sort (进行嵌入式排序,或使用sorted,而不是嵌入式排序)。 不同之处在于,sort (使用会更改原始列表,而sorted )会在不更改原始列表的情况下返回新列表。 如下所示。

选择哪一个要看实际情况。 例如,如果要保留原始记录,则必须使用sorted ()。 如果想节约空间和内存,必须使用sort ()。

整理一个字典

编词典吧:

在这里使用“zip”函数很方便。 将两个相同长度列表中的元素映射到一个。

要对词典进行排序,必须使用sorted ()。 sort ) )因为没有嵌入函数。

如果直接使用sorted (),函数将只返回词典的key列表:

或值列表:

可以调用词典的items ()函数按key排序,并返回元组列表。

如果想按相反的顺序对key进行排序,可以在排序函数中指定。

如果我想按value排序? 这有两种方法。 一个是使用sorted (),但使用lambda函数指定要排序的键。 另一种方法是使用不同的词典类型,而不使用默认词典类型,直接按value对词典进行排序。

在第一种方法中,sorted函数使用key参数指定在进行比较之前为每个元素调用的函数或其他可调用的函数。 本节使用lambda函数来告诉sorted () )函数要比较元素的哪些部分。 具体来说:

因为Python是零索引,所以x[1]指定每个元素的第二部分是字典,并且是值。 如果想要反向顺序,除了向sorted ()函数添加反向参数外,还可以在lambda函数中使用负号。

但是,该技术仅在value值为数字变量时有效。 对于字符串变量,必须使用反向参数。

如果您有具有数字值的词典,则还可以在创建词典时使用不同的词典类型直接对词典进行排序。 词典类型可以是收藏库的Counter。

Counter是dict的子类,元素保存为词典的key,其计数保存为词典的value。

创建Counter时,请使用以下代码:

创建Counter,而不是默认词典。 这很方便。 因为按value对词典进行排序时,可以使用most_common ()函数。

如果要返回到按value降序排列的元组列表,这很有用。

集合库中还有其他有趣的数据类型,如OrderedDict,用于保存每个插入项的顺序。 有关详细信息,请参阅https://docs.python.org/2/library/collections.html #。

返回一个已排序的字典

通常,在排序后获取元组的排序列表。 如果想作为词典显示,可以使用词典表达式进行这项工作。 此功能类似于列表表达式操作:

END

生命周期

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。