• 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)
  • 相关阅读:
    Android开发日记(三)
    Android开发日记(二)
    Bundle savedInstanceState的作用
    Android Bundle类
    Consumer
    饭卡
    《CLR via C#》读书笔记 之 泛型
    WCF寄宿到Windows Service
    WCF中配置文件解析
    WCF Service Configuration Editor的使用
  • 原文地址:https://www.cnblogs.com/lyck/p/13067234.html
Copyright © 2020-2023  润新知