Python 基础 2-3 列表的反转与排序
引言
列表是按照特定格式排序而成的,有时候这种排序方式我们并不喜欢,我们希望它可以按照我们的方式来进行正序或者倒序排序,或其他的排序方式
反转与排序
比如说我这里有一组列表,里面存放的全部都是数值,但非常乱,要你将它按从小到大或从大到小排序
列表可以按正序排序,也可以按倒序排序,排序分永久性的和临时性的
列表反转
列表反转,使用 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()
函数生成一些列数字
只需要在括号内传入开始值及结束值就行了,这个也遵循左闭右开原则
例如以下这个示例,打印 0
至 5
的数字,实际只打印 0
至 4
for num in range(0,5):
print(num,end='\t')
# 运行结果:0 1 2 3 4
如果想输入 0
至 5
则需要在这里输入
创建数字列表
使用 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 列表的反转与排序的更多相关文章
- 『Python基础-8』列表
『Python基础-8』列表 1. 列表的基本概念 列表让你能够在一个地方存储成组的信息,其中可以只包含几个 元素,也可以包含数百万个元素. 列表由一系列按特定顺序排列的元素组成.你可以创建包含字母表 ...
- python基础之02列表/元组/字典/set集合
python中内置的数据类型有列表(list)元组(tuple)字典(directory). 1 list list是一种可变的有序的集合.来看一个list实例: #第一种方法: >>&g ...
- .Net程序员之Python基础教程学习----列表和元组 [First Day]
一. 通用序列操作: 其实对于列表,元组 都属于序列化数据,可以通过下表来访问的.下面就来看看序列的基本操作吧. 1.1 索引: 序列中的所有元素的下标是从0开始递增的. 如果索引的长度的是N,那么所 ...
- Python基础学习Day4 列表的使用方法、range 用法、in用法
一.列表 1.1列表:python基础数据类型之一:其他语言也有列表的概念,js 数组,可索引 ,可切片,可加步长 1.2列表的索引,切片,切片+ 步长 结果: 注意:列表里元素的数据类型,就是它本身 ...
- 2015/9/1 Python基础(6):列表
列表和字符串类型很相似,是同样的序列式数据类型.但是字符串只能由字符组成,列表可以保留任意数目的Python对象的灵活的容器.Python的列表比C的数组要灵活,数组里面只能是一种类型,列表可以有多种 ...
- Python基础学习四 列表、元组、字典、集合
列表list,用中括号“[ ]”表示 1.任意对象的有序集合 列表是一组任意类型的值,按照一定顺序组合而成的 2.通过偏移读取 组成列表的值叫做元素(Elements).每一个元素被标识一个索引,第一 ...
- Python基础数据类型之列表和元组
一.列表 list 列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如: li ...
- python 基础篇 04(列表 元组 常规操作)
本节主要内容:1. 列表2. 列表的增删改查3. 列表的嵌套4. 元组和元组嵌套5. range 一. 列表1.1 列表的介绍列表是python的基础数据类型之一 ,其他编程语言也有类似的数据类型. ...
- python基础学习笔记——列表及元组
列表 列表的介绍 列表是python的基础数据类型之一 ,其他编程语言也有类似的数据类型. 列表的索引和切片 列表和字符串一样也拥有索引: lst = ['刘德华','周润发','周杰伦','向华强 ...
随机推荐
- 《VR入门系列教程》之11---基本几何-材质-光照
网格.多边形.顶点 绘制3D图形有许多方法,用的最多的是用网格绘制.一个网格由一个或多个多边形组成,这些多边形的顶点都是三维空间中的点,它们具有x.y.z三个坐标值.网格中通常采用三角形和四边 ...
- Selenium浏览器自动化测试框架
selenium简介 介绍 Selenium [1] 是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE(7, 8, 9, 1 ...
- 林大妈的JavaScript基础知识(三):JavaScript编程(2)函数
JavaScript是一门函数式的面向对象编程语言.了解函数将会是了解对象创建和操作.原型及原型方法.模块化编程等的重要基础.函数包含一组语句,它的主要功能是代码复用.隐藏信息和组合调用.我们编程就是 ...
- 洛谷 P3387 题解
题面 裸跑一遍SPFA,统计每个点的入队次数: 如果该点的入队次数>=总点数,那么该点便是一个负环上的点: 重点!!!: 1.不是“YES”,是“YE5”: 2.不是“NO”,是“N0”:(是零 ...
- 【Algorithm】选择排序法
简单的选择排序法思想: * 首先找到数组中最小的元素,将它和数组第一个元素互换位置(如果第一个元素就是最小那么它就和自己交换). * 其次,在剩下的元素中找到最小的元素,将它与数组的第二个元素互换位置 ...
- 【Android】System.exit(0) 退出程序
许多 Android 应用程序都是连续点击两下返回键时退出程序,代码如下: private long exitTime = 0; @Override public boolean onKeyDown( ...
- 【nodejs原理&源码赏析(9)】用node-ssh实现轻量级自动化部署
目录 一. 需求描述 二. 预备知识 IP+端口访问 域名访问 三. Nodejs应用的手动部署 四. 基于nodejs的自动部署 4.1 package.json中的scripts 4.2 自动化发 ...
- 大数阶乘(c++实现)
#include <iostream>using namespace std;#define N 1000int BigNumFactorial(int Num[], int n);voi ...
- Adapter适配器模式--图解设计模式
第二章: Adapter 模式 Adapter模式分为两种: 1.类适配器模式 2.委托适配器 我看的是<图解设计模式>这本书,这小鬼子说的话真难懂,只能好好看代码理解. 先说适配器模式要 ...
- zxing 扫码第三方SDK版本不兼容问题
在AndroidStudio环境下,或许会遇到下面的问题: Error:Execution failed for task ':app:preDebugAndroidTestBuild'. > ...