发布时间:2026/7/22 0:35:16
Python 列表完全入门:创建、遍历与常用操作 大家好如果说字符串是Python中的文本管家那列表就是万能容器。它能放数字、放字符串、放嵌套的列表甚至混着放不同类型的数据。几乎所有需要批量处理数据的场景都绕不开列表。这篇文章我们从三个层面来梳理列表如何创建、如何遍历、常用的操作方法有哪些。代码示例为主理论为辅适合边看边敲。一、列表是什么列表是Python内置的可变mutable序列类型用方括号[]表示元素之间用逗号隔开。# 常见列表 numbers [1, 2, 3, 4, 5] names [张三, 李四, 王五] mixed [1, hello, 3.14, [1, 2]] # 元素类型可以不同 # 空列表 empty []列表有几个核心特征有序元素按插入顺序存储可以通过索引访问可变可以增删改元素不会创建新对象可容纳任意类型整数、浮点数、字符串、布尔值甚至是另一个列表二、创建列表的几种方式除了直接用[]还有几种常见的创建方式1.list()构造方法# 从其他可迭代对象转换 s list(abc) # [a, b, c] t list((1, 2, 3)) # [1, 2, 3] 元组转列表2. 列表推导式列表推导式是Python的特色语法用一行代码生成列表# 生成 1 到 10 的平方数 squares [x**2 for x in range(1, 11)] print(squares) # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] # 带条件的推导式 evens [x for x in range(20) if x % 2 0] print(evens) # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]列表推导式比手动写for循环更简洁且执行效率更高。三、遍历列表遍历是操作列表最基础的动作Python提供了多种方式。1.for循环直接遍历元素fruits [苹果, 香蕉, 橘子] for fruit in fruits: print(fruit)这种方式最常用适合只需要元素值、不需要索引的场景。2. 通过索引遍历如果需要同时知道元素的位置可以用range配合len()fruits [苹果, 香蕉, 橘子] for i in range(len(fruits)): print(f第{i1}个水果是{fruits[i]})3.enumerate()同时获取索引和值这是更推荐的写法既简洁又清晰fruits [苹果, 香蕉, 橘子] for index, fruit in enumerate(fruits): print(f索引{index}{fruit})enumerate()默认从0开始也可以指定起始值for index, fruit in enumerate(fruits, start1): print(f第{index}个{fruit})四、列表的常用操作列表之所以强大很大程度上得益于它丰富的方法。这里按功能分类整理。1. 增加元素方法说明示例append(x)在列表末尾添加一个元素lst.append(5)insert(i, x)在索引i处插入元素lst.insert(0, 10)extend(iterable)将另一个可迭代对象的元素逐个追加到末尾lst.extend([6,7])nums [1, 2, 3] nums.append(4) # [1, 2, 3, 4] nums.insert(0, 0) # [0, 1, 2, 3, 4] nums.extend([5, 6]) # [0, 1, 2, 3, 4, 5, 6]注意append和extend的区别很关键。lst [1, 2] lst.append([3, 4]) # [1, 2, [3, 4]] 整个列表作为一个元素 lst.extend([5, 6]) # [1, 2, [3, 4], 5, 6] 逐个添加元素2. 删除元素方法说明pop(i)删除索引i处的元素并返回它不传参数则删除最后一个remove(x)删除第一个值为x的元素clear()清空列表所有元素del语句删除指定索引或切片nums [10, 20, 30, 40, 50]last nums.pop() # 50nums变为 [10, 20, 30, 40] first nums.pop(0) # 10nums变为 [20, 30, 40] nums.remove(30) # nums变为 [20, 40] del nums[0] # nums变为 [40]3. 修改元素修改列表元素直接通过索引赋值即可nums [1, 2, 3, 4] nums[2] 99 # [1, 2, 99, 4] # 切片赋值可以同时修改多个 nums[1:3] [8, 9] # [1, 8, 9, 4]4. 查找与统计方法说明index(x)返回第一个值为x的索引找不到会报错count(x)统计值为x的元素个数in操作符判断元素是否存在于列表中nums [1, 2, 3, 2, 4, 2] print(nums.index(3)) # 2 print(nums.count(2)) # 3 print(5 in nums) # False5. 排序与反转nums [3, 1, 4, 1, 5] # 排序永久改变 nums.sort() # [1, 1, 3, 4, 5] nums.sort(reverseTrue) # [5, 4, 3, 1, 1] # 反转 nums.reverse() # [1, 1, 3, 4, 5] # 不改变原列表返回新列表sorted 是内置函数 new_nums sorted(nums) # 不会修改原列表五、列表的复制一个常见坑由于列表是可变类型直接赋值只是复制了引用而不是复制数据a [1, 2, 3] b a b.append(4) print(a) # [1, 2, 3, 4] 原列表也被改了 如果需要真正的复制可以用以下方式 a [1, 2, 3] # 方法一切片 b a[:] # 方法二list() 构造 b list(a) # 方法三copy() 方法 b a.copy()如果列表里还嵌套了列表多层结构需要用copy.deepcopy()进行深拷贝这个后续文章会单独讲。六、列表与字符串的互转列表和字符串在实际开发中经常互相转换# 字符串 → 列表 s a,b,c,d lst s.split(,) # [a, b, c, d] # 列表 → 字符串 lst [a, b, c, d] s ,.join(lst) # a,b,c,d这个组合在解析CSV文件、处理日志时非常常用。七、总结列表是Python中最基础也最重要的数据结构掌握以下内容就能覆盖绝大多数使用场景创建[]、list()、列表推导式遍历for直接遍历、range索引、enumerate()增删改append、extend、insert、pop、remove、索引赋值查找排序index、count、sort、reverse、sorted复制注意区分引用赋值和真正的拷贝列表用得好代码写起来会顺手很多。它和字符串、字典、元组一起构成了Python数据处理的基础每一块都需要多练手。如果觉得有帮助可以收藏备用。下一篇我会接着讲字典和元组欢迎继续关注。

相关新闻

2026/7/19 13:32:02

Flowframes视频插值教程:3分钟让普通视频秒变丝滑流畅

Flowframes视频插值教程:3分钟让普通视频秒变丝滑流畅 【免费下载链接】flowframes Flowframes Windows GUI for video interpolation using DAIN (NCNN) or RIFE (CUDA/NCNN) 项目地址: https://gitcode.com/gh_mirrors/fl/flowframes Flowframes是一款功能…

2026/7/22 0:52:25

AI 内容审核系统的多模态策略:文本、图片与视频的联合检测

AI 内容审核系统的多模态策略:文本、图片与视频的联合检测 一、用户上传了违规内容,但只检测了文本,图片里有更严重的问题 内容平台上,单一模态的审核很容易被绕过。一段看似正常的文字描述,配上一张违规图片——如果审…

2026/7/22 0:52:25

海外电商的国际化前端架构:RTL 布局、多币种与本地化性能优化

海外电商的国际化前端架构:RTL 布局、多币种与本地化性能优化 海外电商平台的国际化,不是简单的文案翻译,而是一整套涉及布局方向、数据格式、性能策略的前端架构命题。本文复盘某跨境电商平台从单一市场扩展到 8 个语种、14 个地区的技术实践…

2026/7/20 6:33:00

Unity与Python本地通信:基于Flask的跨语言数据交换实战

1. 项目概述:为什么我们需要一个本地通信服务器?在游戏开发、数字孪生、仿真训练等众多领域,Unity作为强大的实时3D内容创作平台,其核心逻辑通常由C#驱动。然而,当我们需要进行复杂的数据分析、机器学习推理、科学计算…

2026/7/22 0:02:17

抓包代理链路下的 TLS 指纹变化分析 TLSFOWARD抓包工具

抓包代理链路下的 TLS 指纹变化分析:为什么调试环境会影响访问结果 摘要 在网页调试、接口联调、自动化巡检和授权采集排查中,抓包是常见手段。但很多开发者会遇到一个现象:正常访问页面时没有问题,一进入抓包或代理调试环境&…

2026/7/22 0:02:17

微信QQ聊天记录误删恢复与备份方案全指南

1. 聊天记录误删的常见场景与恢复思路作为一名长期关注数据安全的技术博主,我处理过上百起聊天记录误删的求助案例。手机误操作、系统升级失败、设备损坏是三大常见诱因。上周就遇到用户更新微信时断电,导致近两年的工作群聊记录全部消失的极端案例。不同…

2026/7/22 0:02:17

2026最新8款个人AI编程免费工具深度实测

作为一名全栈独立开发者,我最近半年一直在折腾副业项目,每个月在AI编程工具上的订阅费算下来其实也不算便宜。作为个人开发者,我们追求的就是用最少的成本获得最高效的开发体验。TRAE 基础版免费,字节跳动出品的国内首款 AI 原生 …

2026/7/21 20:02:44

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…