Python 列表完全入门:创建、遍历与常用操作

📅 2026/7/19 13:38:06 👁️ 阅读次数 📝 编程学习
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"第{i+1}个水果是:{fruits[i]}")

3.enumerate()同时获取索引和值

这是更推荐的写法,既简洁又清晰:

fruits = ["苹果", "香蕉", "橘子"] for index, fruit in enumerate(fruits): print(f"索引{index}:{fruit}")

enumerate()默认从0开始,也可以指定起始值:

for index, fruit in enumerate(fruits, start=1): 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]

注意appendextend的区别很关键。

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() # 50,nums变为 [10, 20, 30, 40] first = nums.pop(0) # 10,nums变为 [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) # False

5. 排序与反转

nums = [3, 1, 4, 1, 5] # 排序(永久改变) nums.sort() # [1, 1, 3, 4, 5] nums.sort(reverse=True) # [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()

增删改appendextendinsertpopremove、索引赋值

查找排序indexcountsortreversesorted

复制注意:区分引用赋值和真正的拷贝

列表用得好,代码写起来会顺手很多。它和字符串、字典、元组一起构成了Python数据处理的基础,每一块都需要多练手。

如果觉得有帮助,可以收藏备用。下一篇我会接着讲字典和元组,欢迎继续关注。