当前位置:首页>python>Python 列表(list)创建 + 索引 + 切片 完整教程

Python 列表(list)创建 + 索引 + 切片 完整教程

  • 2026-10-11 08:40:56
Python 列表(list)创建 + 索引 + 切片 完整教程

一、列表(list)是什么

  • • 列表是 Python 中最常用、最灵活的有序容器
  • • 用 [] 表示,里面可以放任意类型数据:数字、字符串、布尔、列表等
  • • 有序、可修改、可重复、可嵌套

二、列表的创建

1. 直接创建(最常用)

# 空列表
lst1 = []

# 普通列表
lst2 = [10, 20, 30, 40]

# 混合类型
lst3 = [1, "hello", True, 3.14]

# 嵌套列表(二维列表)
lst4 = [[1,2], [3,4], [5,6]]

2. 使用 list() 函数创建

# 从字符串转列表
lst5 = list("abcde")   # ['a','b','c','d','e']

# 从 range 转列表
lst6 = list(range(5))  # [0,1,2,3,4]

三、列表索引(下标)

列表是有序的,每个元素都有编号,叫索引 / 下标。

1. 正向索引(从左到右)

从 0 开始

lst = [10, 20, 30, 40, 50]

print(lst[0])   # 10
print(lst[1])   # 20
print(lst[2])   # 30

2. 负向索引(从右到左)

最后一个是 -1

print(lst[-1])  # 50
print(lst[-2])  # 40
print(lst[-5])  # 10

3. 索引越界会报错

lst[100]   # IndexError: list index out of range

4. 通过索引修改元素

列表是可变类型,可以直接改:

lst = [1,2,3]
lst[0] = 999
print(lst)   # [999, 2, 3]

四、列表切片(超级重点)

1. 切片语法

列表[start : end : step]

含义:

  • • start:开始位置(包含),默认 0
  • • end:结束位置(不包含),默认到末尾
  • • step:步长(可正可负),默认 1

口诀:
包左不包右,取到 end 前一个


2. 基础切片示例

lst = [10, 20, 30, 40, 50, 60]

① lst[start:end]

lst[1:4]    # [20,30,40]   取 1、2、3 位
lst[2:]     # [30,40,50,60] 从2到最后
lst[:4]     # [10,20,30,40] 从头取到第3位
lst[:]      # [10,20,30,40,50,60] 复制整个列表

② 带步长 step

lst[0:6:2]  # [10,30,50]  每隔1个取1个
lst[::2]    # [10,30,50]  从头到尾步长2

③ 负索引切片

lst[-3:-1]  # [40,50]
lst[-4:]    # [30,40,50,60]

④ 步长为负数:倒序取

lst[::-1]   # [60,50,40,30,20,10]  列表反转

lst[5:1:-1] # [60,50,40,30] 从右往左取

五、切片详细规则(新手必背)

  1. 1. start 不写 = 从头开始
  2. 2. end 不写 = 取到最后
  3. 3. step 不写 = 1
  4. 4. step 正数 → 从左到右
  5. 5. step 负数 → 从右到左
  6. 6. 切片永远不会报错,越界只返回空列表 []

六、常用切片示例合集

lst = [0,1,2,3,4,5,6,7,8,9]
  • • 前 3 个
    lst[:3]   # [0,1,2]
  • • 后 3 个
    lst[-3:]  # [7,8,9]
  • • 隔一个取一个
    lst[::2]  # [0,2,4,6,8]
  • • 逆序列表
    lst[::-1]  # [9,8,7,...0]
  • • 复制列表
    new_lst = lst[:]

七、嵌套列表的索引(二维列表)

lst = [[1,2], [3,4], [5,6]]

print(lst[0])     # [1,2]
print(lst[0][1])  # 2
print(lst[-1][0]) # 5

八、易错点总结

  1. 1. 索引从 0 开始,不是 1
  2. 2. 切片 end 不包含
  3. 3. 负索引最后一位是 -1
  4. 4. 列表是可变类型,可以通过索引修改
  5. 5. 切片越界不报错,返回空列表
  6. 6. lst[::-1] 是最快的列表反转方式

📝 本章总结

  1. 1. 创建:[] 或 list()
  2. 2. 索引:lst[0]、lst[-1],可修改
  3. 3. 切片:lst[start:end:step]
    • • 包左不包右
    • • step 正数顺取,负数倒取
  4. 4. 最常用:
    • • lst[:] 复制
    • • lst[::-1] 反转
    • • lst[::2] 隔位取

最新文章

随机文章