当前位置: 首页 > news >正文

Python中列表相关操作

在Python中,列表(list)作为最常用的数据结构之一,下方是相关的增删改查操作。

一、增加元素

  1. append()
    在列表末尾添加单个元素,时间复杂度为O(1)

    lst = [1, 2]
    lst.append(3)  # [1, 2, 3]
    
  2. insert()
    在指定索引位置插入元素(后续元素后移),时间复杂度为O(n)

    lst.insert(1, 'a')  # [1, 'a', 2, 3]
  3. extend()
    将可迭代对象中的元素逐个追加到列表末尾

    lst.extend([4,5])  # [1, 'a', 2, 3, 4, 5]
    
  4. 切片赋值
    可通过空切片实现插入效果:

    lst[2:2] = ['x','y']  # [1, 'a', 'x', 'y', 2, 3, 4, 5]
    

二、删除元素

  1. remove()
    删除首个匹配元素,元素不存在时报错

    lst.remove('a')  # [1, 'x', 'y', 2, 3, 4, 5]
    
  2. pop()
    删除指定索引元素(默认末尾),返回被删除值

    val = lst.pop(0)  # val=1 → ['x', 'y', 2, 3, 4, 5]
  3. del语句
    支持删除单个元素或切片范围

    del lst[2:4]  # ['x', 'y', 3, 4, 5]
    
  4. clear()
    清空列表所有元素

    lst.clear()  # []
    

三、修改元素

  1. 直接索引赋值

    lst = ['a', 'b', 'c']
    lst[1] = 99  # ['a', 99, 'c']
  2. 切片批量修改
    可替换不同长度的元素序列:

    lst[0:2] = [10, 20, 30]  # [10, 20, 30, 'c']
    
  3. 列表推导式
    条件式批量修改:

    lst = [x*2 if x>10 else x for x in lst]
    

四、查找元素

  1. index()
    返回首个匹配元素的索引,无匹配时抛出异常

    idx = lst.index(20)  # 1
  2. in运算符
    快速判断元素是否存在

    if 30 in lst: print("存在")
  3. count()
    统计元素出现次数

    cnt = lst.count(20)  # 1
  4. 遍历查找
    结合enumerate获取索引:

    for i, v in enumerate(lst):if v == 30:break
    
http://www.xdnf.cn/news/549649.html

相关文章:

  • 【生活tips】保存系统随机的壁纸
  • 逆元(费马,扩展欧几里得)
  • PostgreSQL 初体验
  • 基于线性回归的数据预测
  • git学习与使用(远程仓库、分支、工作流)
  • JAVA面向对象——对象和类的基本语法
  • 游戏开发实战(二):Python复刻「崩坏星穹铁道」嗷呜嗷呜事务所---源码级解析该小游戏背后的算法与设计模式【纯原创】
  • Spring Boot 监听器(Listeners)详细教程
  • 为什么以太网一端配置为自协商(Auto-negotiation),另一端强制为**全双工(Full Duplex)**时,最终状态是自协商端降级为 半双工
  • Spring Boot中如何使用RabbitMQ?
  • 离线环境破局:聚客AI无外网部署Dify的依赖镜像打包与增量更新方案
  • 第三十天打卡
  • 3D几何建模引擎3D ACIS Modeler核心功能深度解读
  • ES(Elasticsearch) 基本概念(一)
  • 【Linux】初见,基础指令(续)
  • Linux第十一讲:信号
  • 构建自动收集并总结互联网热门话题的网站
  • 进程间通信(IPC)常用方式对比
  • 当PLC遇上电焊机器人:EtherCAT转CANopen上演工业级“语言翻译官”
  • DP2 跳台阶【牛客网】
  • [面试精选] 0001. 两数之和
  • 人工智能的“歧视”:“她数据”在算法运行中隐形
  • C46-二维数组与指针的总结
  • VUE3 中的 ResizeObserver 警告彻底解决方案
  • C#:多线程Task使用
  • c++使用protocol buffers
  • JS实现古诗竖排从右至左
  • 谈谈jvm的调优思路
  • c++学习方向选择说明
  • [软件工程]第二章题目汇总