Python编程实战 · 基础入门篇 | 列表(list)

作者:程序员爱钓鱼日期:2025/11/6

在 Python 中,列表(list) 是最常用、最灵活的数据结构之一。 它能存放多个数据,可以增删改查,还能嵌套其他列表,是编程中处理“集合类信息”的核心工具。

本章我们将系统学习列表的定义、操作方法、常用函数与实战应用。


一、什么是列表

列表(list)是一个 有序、可变 的元素集合。 它可以存储任意类型的数据,包括数字、字符串、布尔值、甚至其他列表。

示例:

1numbers = [1, 2, 3, 4, 5]
2fruits = ["apple", "banana", "cherry"]
3mixed = [1, "hello", True, 3.14]
4nested = [1, [2, 3], [4, 5]]
5

二、创建列表的方式

1. 使用方括号 []

1nums = [10, 20, 30, 40]
2

2. 使用内置函数 list()

1nums = list((10, 20, 30))
2

3. 创建空列表

1empty_list = []
2# 或
3empty_list = list()
4

三、访问列表元素

列表是有序的,可以通过 索引(index) 访问元素。

1. 正向索引(从 0 开始)

1fruits = ["apple", "banana", "cherry"]
2print(fruits[0])  # 输出 apple
3print(fruits[2])  # 输出 cherry
4

2. 反向索引(从 -1 开始)

1print(fruits[-1])  # 输出 cherry
2print(fruits[-2])  # 输出 banana
3

3. 切片(slice)

可以取出部分元素,形成新的列表:

1print(fruits[0:2])   # ['apple', 'banana']
2print(fruits[1:])    # ['banana', 'cherry']
3print(fruits[:2])    # ['apple', 'banana']
4

四、修改列表内容

1. 直接修改元素

1fruits = ["apple", "banana", "cherry"]
2fruits[1] = "orange"
3print(fruits)
4

输出:

1['apple', 'orange', 'cherry']
2

2. 替换多个元素

1fruits[0:2] = ["pear", "melon"]
2print(fruits)
3

输出:

1['pear', 'melon', 'cherry']
2

五、添加元素

1. append() — 在列表末尾添加元素

1fruits = ["apple", "banana"]
2fruits.append("cherry")
3print(fruits)
4

输出:

1['apple', 'banana', 'cherry']
2

2. insert() — 在指定位置插入元素

1fruits.insert(1, "orange")
2print(fruits)
3

输出:

1['apple', 'orange', 'banana', 'cherry']
2

3. extend() — 合并另一个列表

1fruits = ["apple", "banana"]
2more = ["cherry", "peach"]
3fruits.extend(more)
4print(fruits)
5

输出:

1['apple', 'banana', 'cherry', 'peach']
2

六、删除元素

1. del 删除指定位置的元素

1fruits = ["apple", "banana", "cherry"]
2del fruits[1]
3print(fruits)
4

输出:

1['apple', 'cherry']
2

2. pop() — 删除并返回元素(默认最后一个)

1fruits = ["apple", "banana", "cherry"]
2item = fruits.pop()
3print(item)
4print(fruits)
5

输出:

1cherry
2['apple', 'banana']
3

3. remove() — 删除指定值的第一个匹配项

1fruits = ["apple", "banana", "apple", "cherry"]
2fruits.remove("apple")
3print(fruits)
4

输出:

1['banana', 'apple', 'cherry']
2

4. clear() — 清空整个列表

1fruits.clear()
2print(fruits)
3

输出:

1[]
2

七、遍历列表

示例:

1fruits = ["apple", "banana", "cherry"]
2for fruit in fruits:
3    print(fruit)
4

输出:

1apple
2banana
3cherry
4

八、判断与统计

1. 判断元素是否存在

1if "apple" in fruits:
2    print("有苹果")
3

2. 统计元素数量

1count = fruits.count("apple")
2print(count)
3

3. 获取列表长度

1print(len(fruits))
2

九、排序与反转

1. 升序排序

1nums = [3, 1, 4, 2]
2nums.sort()
3print(nums)
4

输出:

1[1, 2, 3, 4]
2

2. 降序排序

1nums.sort(reverse=True)
2print(nums)
3

输出:

1[4, 3, 2, 1]
2

3. 临时排序(不改变原列表)

1nums = [3, 1, 4, 2]
2print(sorted(nums))
3print(nums)
4

输出:

1[1, 2, 3, 4]
2[3, 1, 4, 2]
3

4. 反转列表

1nums.reverse()
2print(nums)
3

输出:

1[2, 4, 1, 3]
2

十、列表的复制

1. 浅拷贝(copy)

1a = [1, 2, 3]
2b = a.copy()
3b.append(4)
4print(a, b)
5

输出:

1[1, 2, 3] [1, 2, 3, 4]
2

2. 切片复制

1b = a[:]
2

✅ 注意:浅拷贝不会复制嵌套结构中的子列表。


十一、嵌套列表

列表中可以再包含列表,形成二维或多维结构。

1matrix = [
2    [1, 2, 3],
3    [4, 5, 6],
4    [7, 8, 9]
5]
6print(matrix[1][2])  # 输出6
7

十二、列表常用内置函数总结

函数作用
len(list)获取长度
max(list)最大值
min(list)最小值
sum(list)求和(元素为数值时)
list.index(x)获取元素索引
list.count(x)统计出现次数
list.sort()排序
list.reverse()反转
list.copy()浅拷贝

十三、实战案例:学生成绩分析

1scores = [85, 92, 78, 90, 88, 76, 95]
2
3# 1. 平均分
4avg = sum(scores) / len(scores)
5
6# 2. 最高分与最低分
7max_score = max(scores)
8min_score = min(scores)
9
10# 3. 排序
11sorted_scores = sorted(scores, reverse=True)
12
13print(f"平均分:{avg:.2f}")
14print(f"最高分:{max_score}")
15print(f"最低分:{min_score}")
16print(f"从高到低排序:{sorted_scores}")
17

输出:

1平均分:86.29
2最高分:95
3最低分:76
4从高到低排序:[95, 92, 90, 88, 85, 78, 76]
5

十四、小结

操作类别方法或语法示例
创建[]、list()list(range(5))
访问索引、切片a[0]、a[1:3]
修改赋值a[1] = 10
添加append()、extend()、insert()a.append(6)
删除pop()、remove()、dela.pop(0)
遍历forfor i in a:
排序sort()、sorted()a.sort()
统计len()、sum()、count()len(a)

✅ 一句话总结

列表是 Python 最灵活的数据容器,几乎所有程序逻辑都能用它表示。


下一章,我们将学习 元组(tuple), 了解一种不可变但更安全高效的数据结构。


Python编程实战 · 基础入门篇 | 列表(list)》 是转载文章,点击查看原文


相关推荐


Python 的内置函数 float
IMPYLH2025/11/1

Python 内建函数列表 > Python 的内置函数 float Python 的内置函数 float() 是一个用于将数字或字符串转换为浮点数(即带有小数部分的数字)的函数。它是 Python 中处理数值转换的重要工具之一,常用于数据类型转换和数值计算场景。 功能说明 无参数调用:当不带任何参数调用时,float() 会返回 0.0 print(float()) # 输出: 0.0 数字转换: 整数转换为浮点数print(float(5)) # 输出: 5.0 布尔


【操作系统】计算机系统概述
.笑对人生.2025/10/30

目录 一、操作系统的基本概念 (一)操作系统的概念 (二)操作系统的功能和目标 (三)操作系统的特征 二、操作系统发展历程 (一)手工操作阶段(此阶段无操作系统) (二)批处理阶段(操作系统开始出现) (三)分时操作系统 (四)实时操作系统 (五)网络操作系统和分布式计算机系统 (六)个人计算机操作系统 三、操作系统的运行环境 (一)处理器运行模式 (二)中断和异常的概念 (三)系统调用 (四)操作系统运行环境的切换 四、操作系统结构 五、操作系统引导


搭建虚拟机完全分布式(centos)
小鹿学程序2025/10/27

在搭建完全分布式集群前,通常需要先在一台基础节点(可作为主节点或模板节点) 上完成基础环境配置,后续再通过克隆或批量操作同步到其他节点。以下是详细的实操步骤(以 CentOS 7 为例,其他 Linux 发行版操作类似): 一、准备工作 操作系统:确保基础节点已安装好 Linux 系统(推荐 CentOS 7/8、Ubuntu 20.04 等),并配置好静态 IP(避免 IP 动态变化影响集群通信)。 查看 IP:ip addr 配置静态 IP(CentOS 7):编辑 /etc/syscon


系统权限与信息收集:从CPU架构到后渗透实战的完整技术体系
PyHaVolask2025/10/24

文章目录 前言系统权限体系Windows权限层级权限等级划分各权限特点详解权限实战应用 Linux权限体系权限结构权限查看 虚拟机环境配置 CPU保护环机制Ring架构概述Ring 0(内核态)Ring 3(用户态)硬件黑客技术BadUSB攻击USB Killer(烧鹅)高级侧信道攻击 漏洞编号体系Microsoft漏洞编号(MS)CVE漏洞编号CNNVD漏洞编号漏洞研究资源 GitHub技术积累账号建设价值技术搜索技巧开源贡献建议 后渗透信息收集MSF信息收


scrapy爬取豆瓣电影
Derrick__12025/10/22

在李玺老师《爬虫逆向进阶实战》中了解到scrapy后,本意是打算利用b站上更详细的教程爬取一下豆瓣网站国产高分电影的列表。 但是最后爬取出来的结果并没有成功分出国产这一栏目 在ai帮我调试了好几次也没有做好


【自动化测试07】nodejs代码覆盖率测试工具Istanbul(nyc)
郑同学的笔记2025/10/21

【自动化测试07】nodejs代码覆盖率测试工具Istanbul(nyc) 一、代码覆盖率? 二、测试nodejs代码覆盖率的工具优缺点介绍 三、Istanbul(nyc) 1、简介 2、官网 3、安装 4、在项目的package.json 脚本中添加如下命令: 5、配置脚本:在你的项目根目录中,创建一个名为 .nycrc 的文件,并添加以下配置信息: 6、运行测试并生成覆盖率报告:在你的项目根


Redis(72)Redis分布式锁的常见使用场景有哪些?
Victor3562025/10/20

Redis分布式锁在很多需要协调多个分布式系统或组件的场景中都能发挥重要作用。以下是一些常见的使用场景以及相应的代码示例: 常见使用场景 防止资源竞争: 多个进程或线程需要访问同一共享资源时,使用分布式锁可以防止资源竞争,确保同一时间只有一个进程或线程在操作该资源。 定时任务调度: 在分布式系统中,确保某个定时任务在同一时刻只被一个调度器执行,避免重复执行任务。 库存扣减: 电商系统中,多个用户同时下单时,需要确保库存扣减操作的原子性和一致性。 分布式事务: 在跨多


Java中Elasticsearch完全指南:从零基础到实战应用
xxxxxxllllllshi2025/10/19

Java中Elasticsearch完全指南:从零基础到实战应用 环境准备与基础概念 Elasticsearch 与关系型数据库核心概念对比 对于零基础读者,理解 Elasticsearch 的核心概念最直观的方式是与熟悉的关系型数据库进行类比。以下对比表清晰展示了两者核心组件的对应关系: Elasticsearch 概念关系型数据库概念说明索引(Index)数据库(Database)存储相关文档的集合,相当于关系型数据库中的数据库文档(Document)行(Row)索引中的一条数据记录


PCIe协议之 flit 模式 之 速率 vs flit/non-flit vs 编码方式对比汇总
那么菜2025/10/17

一、归纳对比汇总表 特性维度 PCIe 1.0-5.0 (非 FLIT 模式) PCIe 6.0 (FLIT 模式) 适用速率 2.5 GT/s (Gen1), 5.0 GT/s (Gen2), 8.0 GT/s (Gen3), 16.0 GT/s (Gen4), 32.0 GT/s (Gen5) 64.0 GT/s (Gen6) 数据包模式 非 FLIT 模式、FLIT


【ComfyUI】视频替换背景
Mr数据杨2025/10/16

今天给大家演示一个强大的 ComfyUI 视频替换背景工作流。本工作流可实现将原始视频中的人物与背景分离,并替换为任意指定图像或场景,同时保持视频流畅性与人物动作自然过渡。通过多个模型协作与节点连接,最终产出清晰、风格统一的个性化视频,适合用作AI视频创作、短视频特效、虚拟场景合成等应用。 文章目录 工作流介绍核心模型Node节点 工作流程应用场景开发与应用 工作流介绍 本工作流以视频中的人物主体为核心,通过分割、编码、采样、增强等多步骤实现高质量的背景替换。它集成了 文本

首页编辑器站点地图

Copyright © 2025 聚合阅读

License: CC BY-SA 4.0