列表的排序和逆序

点击打开在线编译器,边学边练

      关于列表的排序和逆序问题,我们在遇到很多算法问题以及数据分析的时候,我们都会涉及到这两种问题,通常在求解问题的时候把数据放在列表中,然后使用列表方法进行排序逆序,都能迅速的帮助我们解决问题。

    1. 列表排序

        列表排序的时候我们可以采用两种方式,一种使用sorted(list)进行排序,一种是使用list.sort()进行排序,他们的使用结构分别为:

        1) listname.sort(key=None,reverse=False)

        listname为目标列表,key表示指定一个从每个列表元素中提取一个比较的键,reverse为可选参数,当指定为True时为降序,如果为Flase则为升序。默认为升序。

        2) newlist = sorted(listname,key=None,reverse=False)

        newlist为新的序列,listname为要排序的列表,key和reverse和1)中一致。

        两种方式的区别在于前者等于在原序列上进行直接修改,而后者会生成一个新的序列。

        先定义一个列表为my_list = [2,1,3,5,4,6,8,9,7,10],然后我们进行排序。

        代码如下:

my_list = [2,1,3,5,4,6,8,9,7,10]
my_list.sort()#这种格式是直接在列表后使用sort()函数
b = sorted(my_list)#这种方式是定义一个新列表来存放排序过的序列
print(b)
print(my_list)

        输出结果为:

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

        这两种方式的使用可以自己选择,但一定要注意格式的正确性。

    2. 列表逆序

        我们在做算法题的时候,很多时候需要把我们存放的数据逆序,把一个容器中的数据逆序在Python中采用reverse()函数或者reversed()显得十分简单。

        他们的结构和排序结构有所不同,reverse()和sort()类似,都是直接在列表后面使用方法就可以了,但reversed需要在前面加上一个存储类型(因为在reversed()作用后,返回一个迭代器,迭代器中的数据是逆序过的,我们使用一种已知的存储结构来存储迭代器中的元素更方便访问,通常会使用列表方法)。

list.reverse()
newlist = list(reversed(list))

        我们来看一下实例:

my_list = [2,1,3,5,4,6,8,9,7,10]
c = list(reversed(my_list))#使用reversed逆序一定要加上一个存储类型
my_list.reverse()#使用reverse逆序
print(c)#输出
print(my_list)#输出

        输出结果为:

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

        列表逆序的时候还可以使用前面学习过的切片操作,直接进行逆序:

my_list = [2,1,3,5,4,6,8,9,7,10]
my_list = my_list[::-1]
print(my_list)

        输出结果为:

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

3. 总结

        经过前面的学习,加上本章的内容,大家应该可以试着去完成下面这个题目,这个题的解法比较适合本章节的学习。

        题目链接为:1434

        关于列表的推荐习题比较多,下面还为大家提供大量的习题去进行练习,大家可以选择性去作答。

        部分习题题解:1434题解1491题解


本文固定URL:https://www.dotcpp.com/course/242

上一课:列表方法2 下一课:列表推导式
第一章 人生苦短,我用Python
第二章 Python基础语法
第三章 Python入门语法
第四章 Python核心语法
第五章 函数
第六章 面向对象编程
第七章 模块
第八章 异常处理和程序调试
第九章 文件及目录操作
第十章 GUI编程
第十一章 进程和线程
第十二章 数据库管理
第十三章 算法
第十四章 爬虫
第十五章 实战篇
第十六章 后记
Dotcpp在线编译      (登录可减少运行等待时间)