当前位置:首页>python>Python 列表的索引与切片:从入门到精通

Python 列表的索引与切片:从入门到精通

  • 2026-09-18 21:27:29
Python 列表的索引与切片:从入门到精通
【写在前面】可以参看我的视频进行学习,Python系列课程,持续更新中,喜欢的朋友,关注,点赞,分享,需要笔记代码的同学,可以评论区留言。

公众号推文 | 预计阅读时间:5 分钟


一、什么是列表索引?

列表(List)是 Python 中最常用的数据结构之一。索引就是用来定位列表中元素位置的"门牌号"。

fruits = ['苹果', '香蕉', '橙子', '葡萄', '西瓜']

# 正向索引(从左往右,从 0 开始)
print(fruits[0])   # 苹果
print(fruits[2])   # 橙子

🔑 核心规则:Python 索引从 0 开始

元素
苹果
香蕉
橙子
葡萄
西瓜
正向索引
0
1
2
3
4
反向索引
-5
-4
-3
-2
-1
# 反向索引(从右往左,从 -1 开始)
print(fruits[-1])   # 西瓜(最后一个)
print(fruits[-2])   # 葡萄(倒数第二个)

二、什么是切片?

切片(Slicing) 是 Python 的强大特性,可以一次性取出列表中的一段元素,返回一个新的列表。

基本语法

列表[start:end:step]
参数
含义
是否必填
start
起始索引(包含)
否,默认 0
end
结束索引(不包含)
否,默认末尾
step
步长(间隔)
否,默认 1

三、切片实战演示

1. 基础切片

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

# 取前 3 个元素
print(nums[0:3])    # [0, 1, 2]
print(nums[:3])     # 同上(start 省略,默认从 0 开始)

# 取第 3 到第 6 个元素(索引 3,4,5)
print(nums[3:6])    # [3, 4, 5]

# 取后 3 个元素
print(nums[-3:])    # [7, 8, 9](end 省略,默认到末尾)

2. 进阶技巧

# 复制整个列表
print(nums[:])      # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 每隔一个取一个(步长为 2)
print(nums[::2])    # [0, 2, 4, 6, 8]

# 反转列表(经典写法!)
print(nums[::-1])   # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

# 取倒数第 3 到倒数第 1 个(不包括最后一个)
print(nums[-3:-1])  # [7, 8]

四、切片的重要特性

✅ 特性 1:左闭右开区间

nums = [0, 1, 2, 3, 4]
print(nums[1:3])   # [1, 2]  ← 包含索引 1,不包含索引 3

记忆口诀:"前包后不包"

✅ 特性 2:越界不报错

nums = [0, 1, 2]
print(nums[0:100])  # [0, 1, 2]  ← 不会报错,自动截断

✅ 特性 3:返回新列表

original = [1, 2, 3]
new = original[:]

new[0] = 999
print(original)  # [1, 2, 3]  ← 原列表不变
print(new)       # [999, 2, 3]

五、常见面试题/实用场景

📝 场景 1:字符串反转

s = "Python"
print(s[::-1])   # "nohtyP"

📝 场景 2:删除列表最后 N 个元素

nums = [1, 2, 3, 4, 5]
nums = nums[:-2]   # 删除最后 2 个
print(nums)        # [1, 2, 3]

📝 场景 3:二维列表取值

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

# 取第二行
print(matrix[1])        # [4, 5, 6]

# 取第二行第三列
print(matrix[1][2])     # 6

六、易错点总结

错误写法
问题
正确写法
list[3]
索引越界(列表只有 3 个元素)
list[2]
 或 list[-1]
list[1:3]
 想取 3 个元素
只取了 2 个(1 和 2)
list[1:4]
list[3:1]
结果为空列表(start > end)
list[1:3]
list[::0]
步长不能为 0,报错!
list[::1]
 或 list[::2]

七、一张图看懂切片

列表:  [ 0   1   2   3   4   5   6   7   8   9 ]
索引:    0   1   2   3   4   5   6   7   8   9
        -10  -9  -8  -7  -6  -5  -4  -3  -2  -1

nums[2:5]   →  [2, 3, 4]      (从 2 开始到 5 之前)
nums[:4]    →  [0, 1, 2, 3]   (从头开始到 4 之前)
nums[6:]    →  [6, 7, 8, 9]   (从 6 开始到末尾)
nums[::2]   →  [0, 2, 4, 6, 8] (每隔一个)
nums[::-1]  →  [9, 8, 7, ..., 0] (反转)

八、总结

操作
语法
作用
取单个元素
list[i]
精准定位
取一段元素
list[start:end]
范围截取
隔步取元素
list[::step]
按间隔筛选
反转列表
list[::-1]
顺序颠倒
复制列表
list[:]
浅拷贝

💡 小贴士:切片不仅适用于列表,对字符串、元组同样有效!掌握切片,Python 代码效率翻倍~


觉得有用?点赞 👍 在看 👀 转发 ↗️


最新文章

随机文章