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

Python中列表(list)知识详解(2)和注意事项以及应用示例

Python 中列表(list) 的包括其结构、常见操作(更新、添加、删除、查找、队列栈行为等),下面将逐一的进行讲解并附相关的示例。


一、列表的基础知识

1. 定义与特点

  • 定义方式:用 [] 包裹的有序可变集合

  • 特点

    • 支持 任意类型混合
    • 支持 索引、切片
    • 可变对象(mutable)
    • 支持 重复元素
    • 嵌套
lst = [1, 'hello', 3.14, [4, 5]]

二、列表的基本操作详解

1. 访问元素

lst = [10, 20, 30, 40]
print(lst[0])    # 10
print(lst[-1])   # 40

2. 更新元素

lst[1] = 25
print(lst)  # [10, 25, 30, 40]

三、添加元素

1. append():在末尾添加一个元素

lst.append(50)
# [10, 25, 30, 40, 50]

2. extend():在末尾扩展多个元素(列表合并)

lst.extend([60, 70])
# [10, 25, 30, 40, 50, 60, 70]

3. insert(index, value):在指定位置插入元素

lst.insert(1, 15)
# [10, 15, 25, 30, 40, 50, 60, 70]

四、删除元素

1. pop(index=-1):按索引删除,返回被删除元素

x = lst.pop()      # 删除最后一个
y = lst.pop(1)     # 删除索引 1 的元素

2. remove(value):按值删除第一个匹配项

lst.remove(30)     # 删除第一个值为 30 的元素

3. clear():清空列表

lst.clear()

4. del:按索引或切片删除

del lst[0]
del lst[1:3]

五、查找元素

1. in 操作

if 25 in lst:print("Found")

2. index(value, start, end):返回第一个匹配值的索引

lst.index(25)

3. count(value):统计出现次数

lst.count(25)

六、排序和反转

1. sort()原地排序

lst.sort()           # 升序
lst.sort(reverse=True)

2. sorted():返回新排序列表(不修改原始列表)

sorted_lst = sorted(lst)

3. reverse():反转顺序

lst.reverse()

七、切片操作(强大)

lst = [0, 1, 2, 3, 4, 5]
print(lst[1:4])     # [1, 2, 3]
print(lst[::-1])    # [5, 4, 3, 2, 1, 0] 反转
print(lst[::2])     # [0, 2, 4]

八、栈(Stack)和队列(Queue)操作

栈:先进后出(LIFO)

stack = []
stack.append(1)
stack.append(2)
stack.append(3)
print(stack.pop())   # 3

队列:先进先出(FIFO)

from collections import dequequeue = deque()
queue.append(1)
queue.append(2)
queue.append(3)
print(queue.popleft())  # 1

九、列表推导式(List Comprehension)

squares = [x**2 for x in range(5)]
# [0, 1, 4, 9, 16]even = [x for x in range(10) if x % 2 == 0]

十、注意事项和常见误区

注意事项说明
append() 是添加整个对象,不是拆解元素
remove() 只删除第一个匹配项,若找不到会抛异常
list1 = list2 是引用同一个对象,修改一个影响另一个
若想复制列表,使用 list.copy()list[:]list()
使用 sort() 会直接修改原列表,无法恢复
== 比较的是值,is 比较的是引用

错误示例

a = [1, 2]
b = a
b.append(3)
print(a)  # [1, 2, 3],因为 a 和 b 指向同一个列表

正确复制:

b = a[:]  # 或 a.copy()

十一、实用示例:队列模拟任务处理

from collections import dequetask_queue = deque(['task1', 'task2', 'task3'])while task_queue:current = task_queue.popleft()print(f"Processing {current}")

十二、小结

操作类型方法
添加元素append(), extend(), insert()
删除元素pop(), remove(), clear(), del
查找元素in, index(), count()
排序与反转sort(), sorted(), reverse()
栈操作append(), pop()
队列操作collections.deque, append(), popleft()
列表复制[:], .copy(), list()
推导式[x for x in iterable if ...]

http://www.xdnf.cn/news/6073.html

相关文章:

  • 【Linux C/C++开发】轻量级关系型数据库SQLite开发(包含性能测试代码)
  • 音频生成技术的前沿探索:从语音合成到智能Podcast
  • 【VS】VS2019中使用rdlc报表,生成之前修改XML
  • 基于地图的数据可视化:解锁地理数据的真正价值
  • 第五部分:第二节 - Node.js 核心模块:厨房里的基本工具
  • Android架构之自定义native进程
  • 需求实现与测试验证脱节,如何确保产品质量
  • 【大模型面试每日一题】Day 17:解释MoE(Mixture of Experts)架构如何实现模型稀疏性,并分析其训练难点
  • Cadence软件浮点许可优化管理方案助力企业降本增效
  • 通过SSRF击穿内网!kali-ssrf靶场实战!
  • Maven插件学习(七)—— Toolchains设置项目单独构建JDK(或其他工具)
  • CAN(控制器局域网络)协议详解
  • 反射(Reflection)详解
  • leetcode0295. 数据流的中位数-hard
  • python数据分析常用的10个核心库
  • gradle--问答
  • Vxworks 系统详解
  • Realtek 8126驱动分析第四篇——multi queue相关
  • vLLM Serve 命令参数详解
  • 小白成长之路-文件和目录内容检索处理(一)
  • 2025年项目管理软件哪个更流行?如何解决用例复用率低的难题?
  • write failed: Connection reset by peer
  • 抖音怎么快速涨粉(抖音推流算法研究)
  • python语言与地理处理note 2025/05/11
  • ArrayList的扩容机制
  • 基于脑功能连接组和结构连接组的可解释特定模态及交互图卷积网络|文献速递-深度学习医疗AI最新文献
  • 普通IT的股票交易成长史--20250513复盘
  • 收集卡牌 第23次CCF-CSP计算机软件能力认证
  • 大模型中的KV Cache
  • 开发者版 ONLYOFFICE 协作空间:3.1版本 API 更新