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列表排序方法汇总,超详细!的更多相关文章

  1. Python 列表排序方法reverse、sort、sorted操作方法

    python语言中的列表排序方法有三个:reverse反转/倒序排序.sort正序排序.sorted可以获取排序后的列表.在更高级列表排序中,后两中方法还可以加入条件参数进行排序. reverse() ...

  2. Python 列表排序方法reverse、sort、sorted详解

    python语言中的列表排序方法有三个:reverse反转/倒序排序.sort正序排序.sorted可以获取排序后的列表.在更高级列表排序中,后两中方法还可以加入条件参数进行排序. reverse() ...

  3. python 列表排序方法reverse、sort、sorted基础篇

    python语言中的列表排序方法有三个:reverse反转/倒序排序.sort正序排序.sorted可以获取排序后的列表.在更高级列表排序中,后两中方法还可以加入条件参数进行排序. reverse() ...

  4. python列表排序方法reverse、sort、sorted

    python语言中的列表排序方法有三个:reverse反转/倒序排序.sort正序排序.sorted可以获取排序后的列表.在更高级列表排序中,后两中方法还可以加入条件参数进行排序. reverse() ...

  5. Python列表排序方法reverse、sort、sorted详解

    python语言中的列表排序方法有三个:reverse反转/倒序排序.sort正序排序.sorted可以获取排序后的列表.在更高级列表排序中,后两中方法还可以加入条件参数进行排序. reverse() ...

  6. python 列表排序方法sort、sorted技巧篇

    Python list内置sort()方法用来排序,也可以用python内置的全局sorted()方法来对可迭代的序列排序生成新的序列. 1)排序基础 简单的升序排序是非常容易的.只需要调用sorte ...

  7. python切片使用方法(超详细)

    #切片:就是根据一个下标范围来获取一部分数据,切片通常结合字符串,列表,元组使用 # 为什么使用切片?因为下标只能获取一个数据,所以想要获取字符串或者列表当中一部分数据需要用切片. # 切片的语法格式 ...

  8. Python 基础学习笔记(超详细版)

    1.变量 python中变量很简单,不需要指定数据类型,直接使用等号定义就好.python变量里面存的是内存地址,也就是这个值存在内存里面的哪个地方,如果再把这个变量赋值给另一个变量,新的变量通过之前 ...

  9. Python 列表 sort() 方法

    描述 Python 列表 sort() 方法对列表进行排序. 语法 sort() 方法语法: L.sort([key=None][,reverse=False]) 参数 key-- 可选参数, 如果指 ...

随机推荐

  1. ASP。NET MVC警告横幅使用Bootstrap和AngularUI Bootstrap

    Watch this script in action - demo 下载Source Code from GitHub 下载Source Code from CodeProject (1.1 MB) ...

  2. ng2 父子组件传值 - 状态管理

    一. 父子组件之间进行直接通话 //父组件html <ul> <app-li [value] = "value" (liClick) = "liClic ...

  3. rxjs入门5之创建数据流

    一 创建同步数据流 1.creat Observable.create = function (subscribe) { return new Observable(subscribe); }; 2. ...

  4. centos7.5安装gcc7.2.0

    参考https://www.cnblogs.com/lazyInsects/p/9778910.html cd /usr/src wget https://mirrors.tuna.tsinghua. ...

  5. 【C语言教程】双向链表学习总结和C语言代码实现!值得学习~

    双向链表 定义 我们一开始学习的链表中各节点中都只包含一个指针(游标),且都统一指向直接后继节点,通常称这类链表为单向链表. 虽然使用单向链表能 100% 解决逻辑关系为 "一对一" ...

  6. 【最短路】CF 938D Buy a Ticket

    题目大意 流行乐队"Flayer"将在\(n\)个城市开演唱会,这\(n\)个城市的人都想去听演唱会,每个城市的票价不同,于是这些人就想是否能去其他城市听演唱会更便宜,但是去其他的 ...

  7. logstash -grok插件语法介绍

      介绍 logstash拥有丰富的filter插件,它们扩展了进入过滤器的原始数据,进行复杂的逻辑处理,甚至可以无中生有的添加新的 logstash 事件到后续的流程中去!Grok 是 Logsta ...

  8. 第十九章 keepalived高可用

    一.keepalived高可用 1.什么是高可用 一般是指2台机器启动着完全相同的业务系统,当有一台机器down机了,另外一台服务器就能快速的接管,对于访问的用户是无感知的. 2.高可用使用的工具 1 ...

  9. CPU 底层运算之乘法运算

    CPU 运算加减法运算 假设计算  3+3  原码是0011 * 0011(以4位存贮单元,因为是原码,最高位不代表符号位) 1. 首先 判断 两个加数是否有 负数(减法)  如果有 负数 先将负数转 ...

  10. 某次burp抓包出错的解决办法

    前些日子同事发微信问我一个问题 没听懂他说的没回显是啥意思,于是叫他把站发给我. 浏览器不挂burp代理能正常打开,挂上burp代理以后浏览器显示连接超时 首先测试burp能抓其他的包应不是这个原因 ...