在Python中,列表(List)是最常用、最重要的有序、可变、可重复序列数据类型,也是日常开发中使用率最高的数据结构之一。它可以存储整数、浮点数、字符串、列表、字典等任意类型的数据,灵活性极强。

本文将从定义、索引、切片、遍历、常用方法五个核心维度,全方位讲解Python列表的基础操作,搭配可直接运行的代码示例,零基础也能轻松看懂。

一、列表的定义

Python列表使用中括号 [] 进行定义,多个元素之间用逗号 , 分隔,列表中的元素无需统一数据类型。

1.1 基本语法

# 空列表
list1 = []
# 存储单一数据类型的列表
list2 = [1, 2, 3, 4, 5]
# 存储多种数据类型的列表
list3 = [10, 3.14, "Python", True, [1,2]]

print(list1)  # 输出:[]
print(list2)  # 输出:[1, 2, 3, 4, 5]
print(list3)  # 输出:[10, 3.14, 'Python', True, [1, 2]]

1.2 list() 强制转换定义

可以通过 list() 函数将字符串、元组、集合等可迭代对象转换为列表:

# 字符串转列表
str_list = list("hello")
print(str_list)  # 输出:['h', 'e', 'l', 'l', 'o']

# 元组转列表
tuple_list = list((1, 2, 3))
print(tuple_list)  # 输出:[1, 2, 3]

二、列表的索引

列表是有序序列,每个元素都有唯一的下标(索引),我们可以通过索引精准获取单个列表元素。Python列表索引分为正索引负索引

2.1 正索引(从左向右)

规则:从 0 开始,依次递增,第一个元素索引为0,第二个为1,以此类推。

2.2 负索引(从右向左)

规则:从 -1 开始,依次递减,最后一个元素索引为-1,倒数第二个为-2,以此类推。

2.3 代码示例

lst = ["Python", "Java", "C++", "Go", "PHP"]

# 正索引取值
print(lst[0])   # 第一个元素:Python
print(lst[2])   # 第三个元素:C++

# 负索引取值
print(lst[-1])  # 最后一个元素:PHP
print(lst[-3])  # 倒数第三个元素:C++

注意事项:索引取值超出列表范围,会抛出 IndexError 索引越界异常,开发中需避免。

三、列表的切片

切片是Python列表的核心操作,用于截取列表中的部分元素,生成一个新列表,原列表不会发生改变。相比于索引(取单个元素),切片可以批量取多个元素。

3.1 切片语法

列表[起始索引:结束索引:步长]

起始索引:截取的起始位置,默认为0

结束索引:截取的终止位置,不包含该索引对应的元素,默认为列表长度

步长:元素截取间隔,默认为1,正数从左向右截取,负数从右向左截取

3.2 基础切片示例

lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]

# 1. 截取前5个元素(索引0-4)
print(lst[0:5])   # 输出:[1, 2, 3, 4, 5]

# 2. 省略起始索引,默认从0开始
print(lst[:4])    # 输出:[1, 2, 3, 4]

# 3. 省略结束索引,默认截取到末尾
print(lst[3:])    # 输出:[4, 5, 6, 7, 8, 9]

# 4. 步长为2,隔一个取一个
print(lst[::2])   # 输出:[1, 3, 5, 7, 9]

# 5. 反向切片(列表反转)
print(lst[::-1])  # 输出:[9, 8, 7, 6, 5, 4, 3, 2, 1]

# 6. 截取倒数3个元素
print(lst[-3:])   # 输出:[7, 8, 9]

四、列表的遍历

遍历指逐个读取列表中的所有元素,是数据处理、筛选、修改的基础操作,日常开发中使用频率极高。这里介绍四种最常用的遍历方式。

4.1 直接for循环遍历(最简常用)

lst = ["苹果", "香蕉", "橙子", "葡萄"]
for fruit in lst:
    print(f"水果:{fruit}")

4.2 索引遍历(可获取下标+元素)

lst = ["苹果", "香蕉", "橙子", "葡萄"]
for i in range(len(lst)):
    print(f"索引{i}:{lst[i]}")

4.3 enumerate遍历(同时获取索引和元素,推荐)

enumerate() 可以直接返回元素索引和值,代码更简洁,是开发首选:

lst = ["苹果", "香蕉", "橙子", "葡萄"]
for index, value in enumerate(lst):
    print(f"索引{index}:{value}")

4.4 while循环遍历

lst = ["苹果", "香蕉", "橙子", "葡萄"]
for index, value in enumerate(lst):
    print(f"索引{index}:{value}")

五、列表常用方法

Python列表内置了大量实用方法,支持增、删、改、查、排序、去重、合并等操作,下面整理开发中100%常用的核心方法。

5.1 增加元素(增)

1. append():末尾追加单个元素

在列表末尾添加一个元素,不生成新列表,直接修改原列表

lst = [1, 2, 3]
lst.append(4)
print(lst)  # 输出:[1, 2, 3, 4]
2. extend():末尾追加多个元素

可迭代对象(列表、字符串等)拆解后追加到列表末尾

lst = [1, 2, 3]
lst.extend([4,5,6])
print(lst)  # 输出:[1, 2, 3, 4, 5, 6]
3. insert():指定索引插入元素

在指定索引位置插入元素,原有元素向后顺延

lst = [1, 2, 3]
lst.insert(1, 99)  # 在索引1位置插入99
print(lst)  # 输出:[1, 99, 2, 3]

5.2 删除元素(删)

1. del:根据索引删除元素
lst = [1, 2, 3, 4]
del lst[1]
print(lst)  # 输出:[1, 3, 4]
2. pop():删除并返回指定索引元素(默认最后一个)
lst = [1, 2, 3, 4]
res = lst.pop()  # 默认删除最后一个
print(res)  # 输出:4
print(lst)  # 输出:[1, 2, 3]
3. remove()
:根据元素值删除第一个匹配项
lst = [1, 2, 3, 2]
lst.remove(2)  # 删除第一个2
print(lst)  # 输出:[1, 3, 2]
4. clear():清空列表所有元素
lst = [1, 2, 3]
lst.clear()
print(lst)  # 输出:[]

5.3 修改元素(改)

通过索引直接赋值,覆盖原有元素

lst = [1, 2, 3]
lst[1] = 999  # 修改索引1的元素
print(lst)  # 输出:[1, 999, 3]

5.4 查询元素(查)

1. index():查找元素对应索引(返回第一个匹配项)
lst = [10, 20, 30, 20]
print(lst.index(20))  # 输出:1
2. count():统计元素出现次数
lst = [10, 20, 30, 20, 20]
print(lst.count(20))  # 输出:3

5.5 排序与反转

1. sort():列表升序排序(修改原列表)
lst = [3, 1, 4, 2]
lst.sort()
print(lst)  # 升序:[1, 2, 3, 4]

lst.sort(reverse=True)
print(lst)  # 降序:[4, 3, 2, 1]
2. reverse():列表反转
lst = [1, 2, 3, 4]
lst.reverse()
print(lst)  # 输出:[4, 3, 2, 1]

5.6 其他常用操作

1. len():获取列表长度
lst = [1,2,3,4]
print(len(lst))  # 输出:4
2. 列表合并(+)、列表复制(*)
lst1 = [1,2]
lst2 = [3,4]
print(lst1 + lst2)  # 合并:[1, 2, 3, 4]
print(lst1 * 3)     # 复制三倍:[1, 2, 1, 2, 1, 2]

六、总结

1. 列表是Python可变有序序列,支持任意数据类型存储,兼容性极强;

2. 索引取单个元素、切片取多个元素,是列表取值的核心方式;

3. 四种遍历方式适配不同场景,enumerate遍历为开发首选;

4. 增删改查、排序反转等内置方法,可快速完成列表数据处理,是数据分析、爬虫开发的基础核心。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐