引言

列表是按照特定格式排序而成的,有时候这种排序方式我们并不喜欢,我们希望它可以按照我们的方式来进行正序或者倒序排序,或其他的排序方式

反转与排序

比如说我这里有一组列表,里面存放的全部都是数值,但非常乱,要你将它按从小到大或从大到小排序
列表可以按正序排序,也可以按倒序排序,排序分永久性的和临时性的

列表反转

列表反转,使用 reverse() 方法将列表元素反过来排序
注意: 是将列表元素反过来排序,不是倒序排序
reverse() 方法对列表元素修改的排序永久性的,不过随时可以再调用 reverse() 来恢复原来的排序

num = [ 23 , 12 , 53 , 6 , 18 , 68 , 55 , 96]
num.reverse()
print(num)
# 运行结果:[96, 55, 68, 18, 6, 53, 12, 23]

从以上示例中看到,使用 reverse() 方法进行反转排序仅仅是把列表元素头尾互换反转过来而已,并没有进行倒序排序

列表排序

列表可对数字、英文字母进行排序

1. 正序排序,使用 sort() 方法进行正序排序,永久性排序,排序后不可恢复原来的排序
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort()
print(cars)
# 运行结果:['audi', 'bmw', 'subaru', 'toyota']
2. 倒序排序,在 sort() 方法括号内传入参数 reverse=True 达到倒序排序效果。永久性,排序后不再保持原来排序方式的
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort( reverse=True )
print(cars)
# 运行结果:['toyota', 'subaru', 'bmw', 'audi']
3. 正序排序(临时),使用 sorted() 对列表进行临时排序(正序),不影响列表原来的排序方式
num = [ 23 , 12 , 53 , 6 , 18 , 68 , 55 , 96]

print(num)
# 运行结果:[23, 12, 53, 6, 18, 68, 55, 96]

print( sorted(num))
# 运行结果:[6, 12, 18, 23, 53, 55, 68, 96]

print(num)
# 运行结果:[23, 12, 53, 6, 18, 68, 55, 96]

从以上打印示例中看到,使用 sorted() 对列表进行临时正序排序,再次对列表进行打印时,还是原来的排序顺序

4. 倒序排序(临时),在 sorted() 方法传入 reverse=True 达到倒序排序效果,不影响列表原来的排序方式
num = [ 23 , 12 , 53 , 6 , 18 , 68 , 55 , 96]

print(num)
# 运行结果:[23, 12, 53, 6, 18, 68, 55, 96]

print( sorted(num,reverse=True))
# 运行结果:[96, 68, 55, 53, 23, 18, 12, 6]

print(num)
# 运行结果:[23, 12, 53, 6, 18, 68, 55, 96]

从以上打印示例中看到,通过在 sorted() 内传入 reverse=True 参数,列表进行了临时倒序排序
再次对列表进行打印时,还是原来的排序顺序

其他

使用 range() 函数生成一些列数字

只需要在括号内传入开始值及结束值就行了,这个也遵循左闭右开原则
例如以下这个示例,打印 05 的数字,实际只打印 04

for num in range(0,5):
    print(num,end='\t')
# 运行结果:0    1   2   3   4

如果想输入 05 则需要在这里输入

创建数字列表

使用 list() 函数将 range() 生成的一系列数字转为列表

list_num = list(range(0,5))
print(list_num)
# 运行结果:[0, 1, 2, 3, 4]

range() 还可以指定步长,事实上 range() 函数可以传入三个参数,起始值、结束值、步长

num_list = []
for num in range(0,20,2):
    num_list.append(num)
print(num_list)
# 运行结果:[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

像以上示例中,函数 range()0 开始,不断加2,直到达到或超过20

Python 基础 2-3 列表的反转与排序的更多相关文章

  1. 『Python基础-8』列表

    『Python基础-8』列表 1. 列表的基本概念 列表让你能够在一个地方存储成组的信息,其中可以只包含几个 元素,也可以包含数百万个元素. 列表由一系列按特定顺序排列的元素组成.你可以创建包含字母表 ...

  2. python基础之02列表/元组/字典/set集合

    python中内置的数据类型有列表(list)元组(tuple)字典(directory). 1 list list是一种可变的有序的集合.来看一个list实例: #第一种方法: >>&g ...

  3. .Net程序员之Python基础教程学习----列表和元组 [First Day]

    一. 通用序列操作: 其实对于列表,元组 都属于序列化数据,可以通过下表来访问的.下面就来看看序列的基本操作吧. 1.1 索引: 序列中的所有元素的下标是从0开始递增的. 如果索引的长度的是N,那么所 ...

  4. Python基础学习Day4 列表的使用方法、range 用法、in用法

    一.列表 1.1列表:python基础数据类型之一:其他语言也有列表的概念,js 数组,可索引 ,可切片,可加步长 1.2列表的索引,切片,切片+ 步长 结果: 注意:列表里元素的数据类型,就是它本身 ...

  5. 2015/9/1 Python基础(6):列表

    列表和字符串类型很相似,是同样的序列式数据类型.但是字符串只能由字符组成,列表可以保留任意数目的Python对象的灵活的容器.Python的列表比C的数组要灵活,数组里面只能是一种类型,列表可以有多种 ...

  6. Python基础学习四 列表、元组、字典、集合

    列表list,用中括号“[ ]”表示 1.任意对象的有序集合 列表是一组任意类型的值,按照一定顺序组合而成的 2.通过偏移读取 组成列表的值叫做元素(Elements).每一个元素被标识一个索引,第一 ...

  7. Python基础数据类型之列表和元组

    一.列表   list 列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如: li ...

  8. python 基础篇 04(列表 元组 常规操作)

    本节主要内容:1. 列表2. 列表的增删改查3. 列表的嵌套4. 元组和元组嵌套5. range 一. 列表1.1 列表的介绍列表是python的基础数据类型之一 ,其他编程语言也有类似的数据类型. ...

  9. python基础学习笔记——列表及元组

    列表 列表的介绍  列表是python的基础数据类型之一 ,其他编程语言也有类似的数据类型. 列表的索引和切片 列表和字符串一样也拥有索引: lst = ['刘德华','周润发','周杰伦','向华强 ...

随机推荐

  1. php 排序和置顶功能实现

    (1)排序操作思路 一般来说都是按照发布时间排序.时间戳大的靠前,所以用倒序desc,而不是asc (2)置顶操作思路: 点击置顶时,修改数据库addtime字段值为当前时间即可.因为排序是按照时间戳 ...

  2. Codeforces Round #554 (Div. 2) C. Neko does Maths (数论 GCD(a,b) = GCD(a,b-a))

    传送门 •题意 给出两个正整数 a,b: 求解 k ,使得 LCM(a+k,b+k) 最小,如果有多个 k 使得 LCM() 最小,输出最小的k: •思路 时隔很久,又重新做这个题 温故果然可以知新❤ ...

  3. 走近OPENCV // opencv 2.4.9+vs2013配置

    一直很懒去配opencv,这几周忍不了终于抽空来配了一下环境... 用的是旧版opencv2.4系列,最新到3.0了,之后再看看教程不知道有什么特别大的区别. (FF14国服没有4.0 // 8.19 ...

  4. 【JDK】JDK源码分析-Map

    Map 接口 Map 是一个接口,它表示一种“键-值(key-value)”映射的对象(Entry),其中键是不重复的(值可以重复),且最多映射到一个值(可以理解为“映射”或者“字典”). Map 常 ...

  5. 【iOS】Assertion failure in -[MASViewConstraint install]

    刚遇到了这个问题,详细信息如下: Assertion failure 错误原因: 控件没有添加到视图就使用 mas_makeConstraints 了……应该先把控件添加到视图.

  6. 中间件增强框架之-CaptureFramework框架

    一.背景 应用服务监控是智能运维系统的重要组成部分.在UAV系统中,中间件增强框架(MOF)探针提供了应用画像及性能数据收集等功能,其中数据收集功能主要采集四类数据:实时数据.画像数据.调用链接数据生 ...

  7. Apache 80端口可以访问,8080却不可访问

    RT, 记录一下,后面看是否有解决方案.

  8. Netty学习(二)-Helloworld Netty

    这一节我们来讲解Netty,使用Netty之前我们先了解一下Netty能做什么,无为而学,岂不是白费力气! 1.使用Netty能够做什么 开发异步.非阻塞的TCP网络应用程序: 开发异步.非阻塞的UD ...

  9. MVP架构下解决 RxJava 自动解绑问题

    背景 MVP 模式下使用 RxJava 处理网络访问的回调,当数据返回时 Presenter 调用绑定的 View 的方法. 定义 BasePresenter 如下: public class Bas ...

  10. HashMap这些问题你知道吗?

    HashMap是Java面试中的常考点之一,而且其<Key,Value>结构也是开发中常常用到的结构之一.或许你使用过HashMap,但是你知道下面这些问题吗? HashMap的底层结构是 ...