Python 列表完全入门:创建、遍历与常用操作 大家好如果说字符串是Python中的文本管家那列表就是万能容器。它能放数字、放字符串、放嵌套的列表甚至混着放不同类型的数据。几乎所有需要批量处理数据的场景都绕不开列表。这篇文章我们从三个层面来梳理列表如何创建、如何遍历、常用的操作方法有哪些。代码示例为主理论为辅适合边看边敲。一、列表是什么列表是Python内置的可变mutable序列类型用方括号[]表示元素之间用逗号隔开。# 常见列表 numbers [1, 2, 3, 4, 5] names [张三, 李四, 王五] mixed [1, hello, 3.14, [1, 2]] # 元素类型可以不同 # 空列表 empty []列表有几个核心特征有序元素按插入顺序存储可以通过索引访问可变可以增删改元素不会创建新对象可容纳任意类型整数、浮点数、字符串、布尔值甚至是另一个列表二、创建列表的几种方式除了直接用[]还有几种常见的创建方式1.list()构造方法# 从其他可迭代对象转换 s list(abc) # [a, b, c] t list((1, 2, 3)) # [1, 2, 3] 元组转列表2. 列表推导式列表推导式是Python的特色语法用一行代码生成列表# 生成 1 到 10 的平方数 squares [x**2 for x in range(1, 11)] print(squares) # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] # 带条件的推导式 evens [x for x in range(20) if x % 2 0] print(evens) # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]列表推导式比手动写for循环更简洁且执行效率更高。三、遍历列表遍历是操作列表最基础的动作Python提供了多种方式。1.for循环直接遍历元素fruits [苹果, 香蕉, 橘子] for fruit in fruits: print(fruit)这种方式最常用适合只需要元素值、不需要索引的场景。2. 通过索引遍历如果需要同时知道元素的位置可以用range配合len()fruits [苹果, 香蕉, 橘子] for i in range(len(fruits)): print(f第{i1}个水果是{fruits[i]})3.enumerate()同时获取索引和值这是更推荐的写法既简洁又清晰fruits [苹果, 香蕉, 橘子] for index, fruit in enumerate(fruits): print(f索引{index}{fruit})enumerate()默认从0开始也可以指定起始值for index, fruit in enumerate(fruits, start1): print(f第{index}个{fruit})四、列表的常用操作列表之所以强大很大程度上得益于它丰富的方法。这里按功能分类整理。1. 增加元素方法说明示例append(x)在列表末尾添加一个元素lst.append(5)insert(i, x)在索引i处插入元素lst.insert(0, 10)extend(iterable)将另一个可迭代对象的元素逐个追加到末尾lst.extend([6,7])nums [1, 2, 3] nums.append(4) # [1, 2, 3, 4] nums.insert(0, 0) # [0, 1, 2, 3, 4] nums.extend([5, 6]) # [0, 1, 2, 3, 4, 5, 6]注意append和extend的区别很关键。lst [1, 2] lst.append([3, 4]) # [1, 2, [3, 4]] 整个列表作为一个元素 lst.extend([5, 6]) # [1, 2, [3, 4], 5, 6] 逐个添加元素2. 删除元素方法说明pop(i)删除索引i处的元素并返回它不传参数则删除最后一个remove(x)删除第一个值为x的元素clear()清空列表所有元素del语句删除指定索引或切片nums [10, 20, 30, 40, 50]last nums.pop() # 50nums变为 [10, 20, 30, 40] first nums.pop(0) # 10nums变为 [20, 30, 40] nums.remove(30) # nums变为 [20, 40] del nums[0] # nums变为 [40]3. 修改元素修改列表元素直接通过索引赋值即可nums [1, 2, 3, 4] nums[2] 99 # [1, 2, 99, 4] # 切片赋值可以同时修改多个 nums[1:3] [8, 9] # [1, 8, 9, 4]4. 查找与统计方法说明index(x)返回第一个值为x的索引找不到会报错count(x)统计值为x的元素个数in操作符判断元素是否存在于列表中nums [1, 2, 3, 2, 4, 2] print(nums.index(3)) # 2 print(nums.count(2)) # 3 print(5 in nums) # False5. 排序与反转nums [3, 1, 4, 1, 5] # 排序永久改变 nums.sort() # [1, 1, 3, 4, 5] nums.sort(reverseTrue) # [5, 4, 3, 1, 1] # 反转 nums.reverse() # [1, 1, 3, 4, 5] # 不改变原列表返回新列表sorted 是内置函数 new_nums sorted(nums) # 不会修改原列表五、列表的复制一个常见坑由于列表是可变类型直接赋值只是复制了引用而不是复制数据a [1, 2, 3] b a b.append(4) print(a) # [1, 2, 3, 4] 原列表也被改了 如果需要真正的复制可以用以下方式 a [1, 2, 3] # 方法一切片 b a[:] # 方法二list() 构造 b list(a) # 方法三copy() 方法 b a.copy()如果列表里还嵌套了列表多层结构需要用copy.deepcopy()进行深拷贝这个后续文章会单独讲。六、列表与字符串的互转列表和字符串在实际开发中经常互相转换# 字符串 → 列表 s a,b,c,d lst s.split(,) # [a, b, c, d] # 列表 → 字符串 lst [a, b, c, d] s ,.join(lst) # a,b,c,d这个组合在解析CSV文件、处理日志时非常常用。七、总结列表是Python中最基础也最重要的数据结构掌握以下内容就能覆盖绝大多数使用场景创建[]、list()、列表推导式遍历for直接遍历、range索引、enumerate()增删改append、extend、insert、pop、remove、索引赋值查找排序index、count、sort、reverse、sorted复制注意区分引用赋值和真正的拷贝列表用得好代码写起来会顺手很多。它和字符串、字典、元组一起构成了Python数据处理的基础每一块都需要多练手。如果觉得有帮助可以收藏备用。下一篇我会接着讲字典和元组欢迎继续关注。

相关新闻

最新新闻

Unity性能优化实战:从资源管理到代码效率的完整指南

Unity性能优化实战:从资源管理到代码效率的完整指南

1. 项目概述:为什么Unity性能优化是每个开发者的必修课 如果你是一名Unity开发者,无论是刚入门的新手,还是摸爬滚打多年的老手,我相信“性能优化”这四个字一定让你又爱又恨。爱的是,当你的游戏或应用丝滑流畅时&#…

2026/7/19 20:42:43
人机协同在AI系统中的原理与实践

人机协同在AI系统中的原理与实践

我不能按照该输入内容生成符合要求的博文。原因如下:输入内容实质是一篇已被删除或仅存标题/元信息的网络文章索引,无实质性项目资料:仅有标题、发布平台(Towards AI - Medium)、作者名、一句模糊断言(“hu…

2026/7/19 20:42:43
ECDSA加密原理与PHP实现详解

ECDSA加密原理与PHP实现详解

1. ECDSA加密原理与PHP实现基础ECDSA(Elliptic Curve Digital Signature Algorithm)是基于椭圆曲线密码学的数字签名算法,相比传统的RSA算法,它能在更短的密钥长度下提供同等级别的安全性。在PHP中实现ECDSA加密解密,主…

2026/7/19 20:42:43
Unity场景程序化生成实战:GeNa 2核心功能与性能优化全解析

Unity场景程序化生成实战:GeNa 2核心功能与性能优化全解析

1. 项目概述:告别“手搓”场景,用GeNa 2解放你的创造力如果你是一名Unity开发者,尤其是负责过开放世界、RPG或者任何需要大量自然场景的游戏,那你一定对“手动刷树”、“手动摆石头”这种重复性劳动深恶痛绝。我曾经在一个项目中&…

2026/7/19 20:42:43
Silverlight/WPF/Windows Phone技术回顾与MVVM模式解析

Silverlight/WPF/Windows Phone技术回顾与MVVM模式解析

1. Silverlight/WPF/Windows Phone技术生态现状2011年左右的微软技术生态中,Silverlight、WPF和Windows Phone构成了一个完整的技术矩阵。这三个技术虽然面向不同平台,但都基于XAML和.NET框架,共享相似的设计理念和开发模式。这种技术统一性为…

2026/7/19 20:42:43
从提示词工程到循环工程:构建稳定AI生成系统的Karpathy工作流

从提示词工程到循环工程:构建稳定AI生成系统的Karpathy工作流

上周,一位做内容运营的朋友向我吐槽:他花了一下午调试出一个能生成合格产品介绍的提示词,本以为从此可以批量产出,结果跑了几十篇后才发现,有些文章会漏掉关键卖点,有些则重复啰嗦,每次都要人工…

2026/7/19 20:37:43

月新闻