跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python

Python 列表(List)基本用法与操作详解

Python 列表的基本概念、创建方式、索引访问、切片操作、常用内置函数及修改方法。涵盖了列表的嵌套结构、运算符支持以及列表推导式等核心特性,旨在帮助开发者全面掌握 Python 序列类型中最常用的数据结构。内容包含创建、访问、扩展、查找、统计、排序、反转及推导式等完整操作示例。

Stephaine Walsh发布于 2025/2/7更新于 2026/10/2287 浏览
Python 列表(List)基本用法与操作详解

Python 列表(List)基本用法与操作详解

1. 概述

在 Python 中,列表(List)是最常用的数据结构之一。它是一种有序的可变序列,可以存储任意类型的对象,包括数字、字符串、其他列表甚至字典等。列表使用方括号 [] 表示,元素之间用逗号分隔。

2. 创建与访问

2.1 创建列表

列表内部的对象可以是字符串、整数、浮点数等,支持混搭类型。

aList = ['apple', 100, 0.01, 'banana', 'A', 'B', 'C']
print(aList)

2.2 索引访问

可以通过下标直接访问列表中的元素。索引从 0 开始,负数索引表示从末尾倒数。

>>> print(aList[0])
'apple'
>>> print(aList[-1])
'C'

2.3 列表切片

通过切片操作可以获取列表中的一部分,语法为 [start:end:step]。

>>> print(aList[4:6])
['A', 'B']
>>> print(aList[::2])
['apple', 0.01, 'A', 'C']

3. 常用内置函数与运算符

3.1 长度计算

使用内置函数 len() 获取列表长度。

aList = [1, 2, 3, 4, 5]
print(len(aList))  
# 输出:5

3.2 最大值与最小值

对于数值型列表,可使用 max() 和 min() 函数。

aList = [1, 2, 3, 4, 5]
print(min(aList))  # 输出:1
print(max(aList))  # 输出:5

3.3 列表扩展与合并

  • + 运算符:返回一个新的列表,不修改原列表。
  • extend() 方法:就地修改原列表,追加另一个可迭代对象的元素。
list1 = [1, 2, 3]
list2 = [100, 200, 300]
list3 = list1 + list2
print(list3)  # [1, 2, 3, 100, 200, 300]

list4 = ['a', 'b', 'c']
list5 = list4 * 3
print(list5)  # ['a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c']

aList = [1, 2, 3]
b = [4, 5, 6]
aList.extend(b)
print(aList)  # [1, 2, 3, 4, 5, 6]

3.4 查找与统计

  • index(): 查找元素首次出现的索引位置。
  • count(): 统计某个元素在列表中出现的次数。
aList = ['This', 'is', 'a', 'very', 'good', 'idea']
print(aList.index('very'))  # 输出:3

aList = ['to', 'do', 'or', 'not', 'to', 'do']
print(aList.count('to'))    # 输出:2

4. 列表的修改方法

除了上述操作外,列表还支持多种原地修改方法:

  • append(x): 在列表末尾添加一个元素。
  • insert(i, x): 在指定位置插入元素。
  • remove(x): 删除第一个值为 x 的元素。
  • pop([i]): 移除并返回列表中指定位置的元素(默认为最后一个)。
  • sort(): 对列表进行排序。
  • reverse(): 反转列表顺序。
  • clear(): 清空列表。
nums = [3, 1, 4, 1, 5]
nums.append(9)          # [3, 1, 4, 1, 5, 9]
nums.insert(0, 0)       # [0, 3, 1, 4, 1, 5, 9]
nums.remove(1)          # [0, 3, 1, 4, 1, 5, 9] (只删除第一个 1)
val = nums.pop()        # 9, nums 变为 [0, 3, 1, 4, 1, 5]
nums.sort()             # [0, 1, 1, 3, 4, 5]
nums.reverse()          # [5, 4, 3, 1, 1, 0]

5. 嵌套列表

列表支持嵌套,即列表中可以包含其他列表、元组或字典等复杂结构。

bList = [100, 200, ['aaa', 'bbb', 'ccc']]
print(bList[2][0])      # 输出:aaa

6. 列表推导式

列表推导式是创建列表的一种简洁方式,常用于根据现有列表生成新列表。

squares = [x**2 for x in range(10)]
print(squares)  # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

evens = [x for x in range(20) if x % 2 == 0]
print(evens)    # [0, 2, 4, ..., 18]

7. 注意事项

  1. 可变性:列表是可变的,这意味着修改列表会影响所有引用该列表的变量。若需复制列表,应使用 copy() 方法或切片 [:],避免浅拷贝带来的副作用。
  2. 性能:在列表头部插入或删除元素的时间复杂度为 O(n),而在尾部操作通常为 O(1)。频繁在头部操作时建议使用 collections.deque。
  3. 类型安全:虽然列表可以混合存储不同类型,但在实际开发中建议保持类型一致性以提高代码可读性和维护性。

目录

  1. Python 列表(List)基本用法与操作详解
  2. 1. 概述
  3. 2. 创建与访问
  4. 2.1 创建列表
  5. 2.2 索引访问
  6. 2.3 列表切片
  7. 3. 常用内置函数与运算符
  8. 3.1 长度计算
  9. 3.2 最大值与最小值
  10. 3.3 列表扩展与合并
  11. 3.4 查找与统计
  12. 4. 列表的修改方法
  13. 5. 嵌套列表
  14. 6. 列表推导式
  15. 7. 注意事项

更多推荐文章

查看全部
  • cJSON 1.7.19 源码剖析:数据结构与解析实现
  • 用 AI 工具 Cursor 30 分钟开发鸿蒙元服务 Demo
  • Vue 自定义指令核心原理与实战
  • Python 布尔类型
  • 大模型测评:千问、DeepSeek、豆包、KIMI、元宝、文心一言,降英文AI率谁最能打?
  • LazyLLM 框架实战:构建代码专家智能体
  • Github 项目上传完整教程
  • C++ 递归算法实战:汉诺塔问题详解
  • Java 核心面试题与解析:基础、并发、容器等高频考点
  • 基于 SpringAI+RAG 的知识库问答机器人实现
  • Python 多进程开销解析与 IPC 优化实战
  • 开放代码的能源管理:经济、安全与创新
  • Spring AI MCP Server 集成与示例
  • CSS 实现毛玻璃模糊背景效果
  • 深入理解 MCP 协议:与 Function Call 的区别及 Python 实战
  • Android Studio 零基础入门指南:环境搭建与核心组件详解
  • Python 自动化实战:pyautogui 鼠标键盘控制指南
  • OpenClaw 安装与飞书机器人接入教程
  • 前端权限管理实战:构建安全可控的访问体系
  • Docker Compose 实践:简单拓扑、数据库代理与 WordPress 博客部署

相关免费在线工具

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online