博客
关于我
python --- 列表(list)
阅读量:804 次
发布时间:2023-03-05

本文共 2155 字,大约阅读时间需要 7 分钟。

列表(List)在 Python 中的使用指南

列表的基本特性

列表是一种非常强大的数据结构,可以存储多种数据类型的元素。以下是列表的核心特性:

  • 存储数据:列表可以存储多个数据项,支持多种数据类型。
  • 首地址传递:Python 中的数据传递本质上是基于首地址的传递。
  • 可迭代对象:列表支持迭代,可以使用 for 循环来遍历。
  • 支持索引操作:可以通过下标访问和修改列表中的元素。
  • 支持切片操作:可以通过切片操作获取列表的子列表。
  • 列表的创建方法

    列表的创建有两种主要方式:

  • 直接创建

    l = [1, 2, 3]  # 整型列表l = ['a', 'b', 'c']  # 字符串列表l = [1, 'a', False]  # 混合列表l = []  # 空列表
  • 构造方法

    list()  # 返回一个空列表list(iterable)  # 将可迭代对象(如字符串、range)的元素转换为列表
  • 列表的访问

    访问单个数据
    l = [1, 2, 3]print(l[0])  # 输出 1
    访问多个数据
    l = [1, 2, 3]print(l[1:3])  # 输出 [2, 3]
    遍历所有数据
    l2 = list('abcdefg')for i in l2:    print(i)

    列表的添加

    添加单个元素
    l = []l.append(10)  # 向列表末尾添加元素
    添加多个元素
    l = []l.extend([1, 2, 3])  # 将 iterable 的元素添加到列表末尾
    插入特定位置
    l = [1, 2, 3]l.insert(1, 5)  # 在位置 1 插入 5,列表变为 [1,5,2,3]

    列表的修改

    直接修改元素
    l = [1, 2, 3]l[0] = 99  # 修改列表中第一个元素

    列表的删除

  • 清空列表

    l = [1, 2, 3]l.clear()  # 列表变为空 []
  • 删除最后一个元素

    l = [1, 2, 3]l.pop()  # 删除并返回 3,列表变为 [1, 2]
  • 按值删除元素

    l = [1, 2, 3, 4, 5]l.remove(3)  # 删除一个 3,列表变为 [1, 2, 4, 5]
  • 删除指定位置的元素

    l = [1, 2, 3, 4, 5]del l[0]  # 删除第一个元素,列表变为 [2, 3, 4, 5]
  • 列表的下标

  • 正数下标:从 0 开始,到 len(list) - 1
  • 负数下标:表示从列表末尾开始,-1 表示最后一个元素。
  • 长度:使用 len() 函数获取列表长度。
  • 超出范围的下标会抛出 IndexError 异常
  • 列表的结构

    列表在内存中是连续存储的,列表中的每个元素实际上是数据的首地址,而不是数据本身。

    列表的其他方法

  • 浅拷贝

    l = [1, 2, 3]l_copy = l.copy()  # 创建浅拷贝
  • 元素计数

    l = [1, 2, 3, 2]print(l.count(2))  # 输出 2
  • 查找元素位置

    l = [1, 2, 3, 4, 5]print(l.index(3))  # 输出 2
  • 反转列表

    l = [1, 2, 3, 4, 5]l.reverse()  # 列表变为 [5, 4, 3, 2, 1]
  • 排序

    l = [3, 1, 2]l.sort()  # 排序后的列表为 [1, 2, 3]
  • 枚举

    seasons = ['Spring', 'Summer', 'Fall', 'Winter']list(enumerate(seasons))  # 输出 [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
  • 切片操作

    切片操作用于获取列表的一部分数据,常用于拷贝或重组数据。

  • 基本切片语法

    l = [1, 2, 3, 4, 5, 6]print(l[1:4])  # 输出 [2, 3, 4]
  • 省略形式

    • 从第一个元素开始:l[:n]
    • 取到最后一个元素:l[n:]
    • 取到所有元素:l[:]
  • **步长

    l = [1, 2, 3, 4, 5, 6]print(l[1:4:1])  # 输出 [2, 3, 4]
  • 列表的运算符

  • 加法运算

    l = [1, 2]m = [3, 4]print(l + m)  # 输出 [1, 2, 3, 4]
  • 重复运算

    l = [1, 2]print(l * 3)  # 输出 [1, 2, 1, 2, 1, 2]
  • 比较运算

    l = [1, 2, 3]m = [4, 5, 6]print(l < m)  # 输出 True
  • 成员关系运算

    l = [1, 2, 3]print(3 in l)  # 输出 True
  • 排序

  • 冒泡排序:通过多次交换相邻元素,最小元素逐渐上升到最高位置。
  • 选择排序:固定一个下标,逐一比较当前元素与后续元素,选出最小的元素交换位置。
  • 归并排序:将数据拆分成两部分,递归排序后合并。
  • 快速排序:选择一个枢轴元素,将数组划分为两部分,分别排序后合并。
  • 默认情况下,列表的 sort() 方法使用 Timsort algorithm,结合了归并和快速排序,适用于大部分场景。

    转载地址:http://xsafk.baihongyu.com/

    你可能感兴趣的文章
    pyqt5任意组件的拖拽问题
    查看>>
    SpringBoot中集成MobileIMSDK并实现记录所有用户以实现消息群发
    查看>>
    PyQt5信号与槽学习笔记——自定义信号与槽(二)
    查看>>
    PyQt5学习笔记——信号与槽
    查看>>
    PyQt5开发暗黑风格的计时器
    查看>>
    pyqt5教程11:绘制外观
    查看>>
    pyqt5教程12:拖放功能
    查看>>
    pyqt5教程13:客户定制组件
    查看>>
    pyqt5教程6:信号和事件
    查看>>
    PyQt5教程7:布局Layout管理
    查看>>
    pyqt5教程8:对话框
    查看>>
    pyqt5教程9:Widgets组件
    查看>>
    PyQt5教程——组件(7)
    查看>>
    pyqt5计时器的使用
    查看>>
    PyQt5设计桌面程序步骤
    查看>>
    PyQt5:检查鼠标是否在Enter-Event中按住
    查看>>
    pyqt出现“Ui_Dialog has no attribute “show””
    查看>>
    PyQt:如何使用QAxWidget引用发送参数
    查看>>
    PyQt:我可以制作一个带有图标和文本的工具栏按钮吗?
    查看>>
    pyscopg2:是否可以在循环中动态添加 %s
    查看>>