Python列表排序方法汇总,超详细!
1. 修改原列表,不创建新列表的排序
1 a = [3, 2, 8, 4, 6]
2 print(id(a)) # 2180873605704
3 a.sort() # 默认升序
4 print(a) # [2, 3, 4, 6, 8]
5 print(id(a)) # 2180873605704
6
7 a.sort(reverse=True)
8 print(a) # [8, 6, 4, 3, 2]
1 # 将序列的所有元素随机排序
2 import random
3 b = [3, 2, 8, 4, 6]
4 random.shuffle(b)
5 print(b) # [4, 3, 6, 2, 8]
2. 创建新列表的排序
通过内置函数sorted()进行排序,这个方法返回新列表,不对原列表做修改。
1 a = [3, 2, 8, 4, 6]
2 b = sorted(a) # 默认升序
3 c = sorted(a, reverse=True) # 降序
4 print(b) # [2, 3, 4, 6, 8]
5 print(c) # [8, 6, 4, 3, 2]
3. 冒泡排序
1 list1 = [34,54,6,5,65,100,4,19,50,3]
2
3 #冒泡排序,以升序为例
4
5 #外层循环:控制比较的轮数
6 for i in range(len(list1) - 1):
7 #内层循环:控制每一轮比较的次数,兼顾参与比较的下标
8 for j in range(len(list1) - 1 - i):
9 #比较:只要符合条件则交换位置,
10 # 如果下标小的元素 > 下标大的元素,则交换位置
11 if list1[j] < list1[j + 1]:
12 list1[j],list1[j + 1] = list1[j + 1],list1[j]
13 print(list1)
4. 选择排序
1 li = [17, 4, 77, 2, 32, 56, 23]
2
3 # 外层循环:控制比较的轮数
4 for i in range(len(li) - 1):
5 # 内层循环:控制每一轮比较的次数
6 for j in range(i + 1, len(li)):
7 # 如果下标小的元素>下标大的元素,则交换位置
8 if li[i] > li[j]:
9 li[i], li[j] = li[j], li[i]
10 print(li)
Python列表排序方法汇总,超详细!的更多相关文章
- Python 列表排序方法reverse、sort、sorted操作方法
python语言中的列表排序方法有三个:reverse反转/倒序排序.sort正序排序.sorted可以获取排序后的列表.在更高级列表排序中,后两中方法还可以加入条件参数进行排序. reverse() ...
- Python 列表排序方法reverse、sort、sorted详解
python语言中的列表排序方法有三个:reverse反转/倒序排序.sort正序排序.sorted可以获取排序后的列表.在更高级列表排序中,后两中方法还可以加入条件参数进行排序. reverse() ...
- python 列表排序方法reverse、sort、sorted基础篇
python语言中的列表排序方法有三个:reverse反转/倒序排序.sort正序排序.sorted可以获取排序后的列表.在更高级列表排序中,后两中方法还可以加入条件参数进行排序. reverse() ...
- python列表排序方法reverse、sort、sorted
python语言中的列表排序方法有三个:reverse反转/倒序排序.sort正序排序.sorted可以获取排序后的列表.在更高级列表排序中,后两中方法还可以加入条件参数进行排序. reverse() ...
- Python列表排序方法reverse、sort、sorted详解
python语言中的列表排序方法有三个:reverse反转/倒序排序.sort正序排序.sorted可以获取排序后的列表.在更高级列表排序中,后两中方法还可以加入条件参数进行排序. reverse() ...
- python 列表排序方法sort、sorted技巧篇
Python list内置sort()方法用来排序,也可以用python内置的全局sorted()方法来对可迭代的序列排序生成新的序列. 1)排序基础 简单的升序排序是非常容易的.只需要调用sorte ...
- python切片使用方法(超详细)
#切片:就是根据一个下标范围来获取一部分数据,切片通常结合字符串,列表,元组使用 # 为什么使用切片?因为下标只能获取一个数据,所以想要获取字符串或者列表当中一部分数据需要用切片. # 切片的语法格式 ...
- Python 基础学习笔记(超详细版)
1.变量 python中变量很简单,不需要指定数据类型,直接使用等号定义就好.python变量里面存的是内存地址,也就是这个值存在内存里面的哪个地方,如果再把这个变量赋值给另一个变量,新的变量通过之前 ...
- Python 列表 sort() 方法
描述 Python 列表 sort() 方法对列表进行排序. 语法 sort() 方法语法: L.sort([key=None][,reverse=False]) 参数 key-- 可选参数, 如果指 ...
随机推荐
- Linux就该这么学28期——开篇
2020.10.03 正式开始系统学习Linux之旅,希望能在老刘的带领下,掌握操作要领. 现将所学记录在此. 学习环境如下: VmwareWorkStation 15 --虚拟机软件 versio ...
- JavaScript返回当前的时分秒
要求: 封装一个函数返回当前的时分秒 格式 08:08:08 代码实现: function getTimer() { var time = new Date(); var h = time.getHo ...
- 0xctf[No parameters readfile](魔改版[GXYCTF2019]禁止套娃)
阅读本文前建议先阅读本站中的另一篇文章:[GXYCTF2019]禁止套娃 重要参考链接:http://www.heetian.com/info/827 Leon师傅魔改了[GXYCTF2019]禁止套 ...
- .NET 云原生架构师训练营(模块一 架构师与云原生)--学习笔记
目录 什么是软件架构 软件架构的基本思路 单体向分布式演进.云原生.技术中台 1.1 什么是软件架构 1.1.1 什么是架构? Software architecture = {Elements, F ...
- BUUCTF_web_三
下面还是简单web的入门题 [GKCTF2020]cve版签到 这次的比赛最简单的题了吧,提示是CVE-2020-7066,但是网上没有几个关于这个漏洞的相关利用的文章,似乎是get_header() ...
- Spring系列 SpringMVC的请求与数据响应
Spring系列 SpringMVC的请求与数据响应 SpringMVC的数据响应 数据响应的方式 y以下案例均部署在Tomcat上,使用浏览器来访问一个简单的success.jsp页面来实现 Suc ...
- go-zero 如何应对海量定时/延迟任务?
一个系统中存在着大量的调度任务,同时调度任务存在时间的滞后性,而大量的调度任务如果每一个都使用自己的调度器来管理任务的生命周期的话,浪费cpu的资源而且很低效. 本文来介绍 go-zero 中 延迟操 ...
- 【纯水题】CF 833A The Meaningless Game
题目大意 洛谷链接 现在两个人做游戏,每个人刚开始都是数字\(1\),谁赢了就能乘以\(k^2\),输的乘以\(k\),现在给你最终这两个人的得分,让你判断是否有这个可能,有可能的话输出Yes,否则输 ...
- 【贪心算法】CF Emergency Evacuation
题目大意 vjudge链接 给你一个车厢和一些人,这些人都坐在座位上,求这些人全部出去的时间最小值. 样例1输入 5 2 71 11 21 32 32 44 45 2 样例1输出 9 样例2输入 50 ...
- swoft根据表创建实体
php bin/swoft entity:gen table= table1,table2,table3,... [root@localhost swoft]# php bin/swoft entit ...
