Python 入门第四天:列表、元组、字符串、集合与字典
程序通常需要同时处理多个数据。例如保存一个班级的学生姓名、记录一件商品的信息或者统计文章中出现过哪些单词。如果为每个数据分别创建变量代码会变得非常混乱。Python 提供了多种“数据容器”可以把多个数据组织在一起。常用的数据容器包括列表、元组、字符串、集合和字典。一、认识数据容器数据容器就是可以存放多个数据的数据类型。例如students [小明, 小红, 小刚]变量students中同时保存了三个学生姓名。Python 常用容器的特点如下容器符号是否有序能否重复能否修改列表[]是可以可以元组()是可以不可以字符串引号是可以不可以集合{}不依赖下标顺序不可以可以字典{键: 值}按键存取键不能重复可以不同容器适合不同的场景。学习时不必一次记住所有方法先理解它们之间的区别再通过练习熟悉常用操作。二、列表的定义列表可以保存多个数据并且列表中的数据可以修改。定义列表时使用中括号元素之间使用英文逗号分隔names [小明, 小红, 小刚] numbers [10, 20, 30]列表可以保存不同类型的数据data [Python, 100, 3.14, True]不过实际开发中通常会让一个列表保存含义相近的数据以便阅读和处理。定义空列表有两种方式list1 [] list2 list()列表中的每一个数据都叫作元素。三、使用下标访问列表列表中的每个元素都有自己的编号这个编号叫作下标或索引。Python 的下标从0开始names [小明, 小红, 小刚] print(names[0]) print(names[1]) print(names[2])运行结果小明 小红 小刚如果访问了不存在的下标程序会出现IndexErrorprint(names[5])Python 还支持负数下标。-1表示最后一个元素-2表示倒数第二个元素print(names[-1]) # 小刚 print(names[-2]) # 小红列表中还可以继续保存列表这叫作嵌套列表students [ [小明, 18], [小红, 17] ] print(students[0]) # [小明, 18] print(students[0][0]) # 小明 print(students[1][1]) # 17第一个下标选择外层元素第二个下标继续选择内层元素。四、列表的常用操作1. 查找元素下标index()可以查找元素第一次出现的位置names [小明, 小红, 小刚] position names.index(小红) print(position) # 1如果元素不存在程序会出现ValueError。因此可以先使用in判断if 小李 in names: print(names.index(小李)) else: print(没有找到小李)2. 修改元素列表可以根据下标修改数据names [小明, 小红, 小刚] names[1] 小李 print(names)结果为[小明, 小李, 小刚]3. 添加元素使用append()在列表末尾添加一个元素names.append(小王)使用insert()在指定位置插入元素names.insert(1, 小美)使用extend()把另一个容器中的元素逐个添加到列表末尾names.extend([小张, 小赵])要注意append()和extend()的区别numbers [1, 2] numbers.append([3, 4]) print(numbers) # [1, 2, [3, 4]]append()会把整个列表当作一个元素。numbers [1, 2] numbers.extend([3, 4]) print(numbers) # [1, 2, 3, 4]extend()会把元素逐个加入原列表。4. 删除元素根据下标删除names [小明, 小红, 小刚] del names[1] print(names)pop()可以删除并返回指定下标的元素deleted_name names.pop(0) print(deleted_name)remove()根据元素内容删除第一次出现的数据names.remove(小刚)清空整个列表可以使用clear()names.clear()5. 统计元素数量len()可以获取列表长度numbers [10, 20, 30, 40] print(len(numbers)) # 4count()可以统计某个元素出现的次数numbers [10, 20, 10, 30, 10] print(numbers.count(10)) # 3五、遍历列表使用for循环可以逐个处理列表中的元素names [小明, 小红, 小刚] for name in names: print(name)也可以配合条件判断进行统计scores [88, 45, 92, 60, 55] pass_count 0 for score in scores: if score 60: pass_count 1 print(f一共有{pass_count}人成绩及格)如果需要根据下标遍历可以结合range()和len()for index in range(len(names)): print(index, names[index])六、元组元组和列表很相似也可以保存多个不同类型的数据。最大的区别是元组定义后不能修改。元组使用小括号定义info (小明, 18, 北京)也可以省略小括号info 小明, 18, 北京定义空元组data () data tuple()定义只有一个元素的元组时必须在元素后面添加逗号number (10,)如果没有逗号number (10)它只是整数10不是元组。元组支持下标、index()、count()和len()data (Python, Java, Python) print(data[0]) print(data.index(Java)) print(data.count(Python)) print(len(data))但不能直接修改元组元素data[0] C # 报错元组适合保存不希望被意外修改的数据例如坐标、日期或者固定配置。七、字符串也是数据容器字符串可以看作由多个字符组成的容器text Python print(text[0]) # P print(text[-1]) # n字符串和元组一样内容不能直接修改text[0] J # 报错如果需要修改字符串通常会创建一个新字符串。常用字符串操作查找字符串出现的位置text hello python print(text.index(python))替换内容new_text text.replace(python, world) print(new_text)replace()不会修改原字符串而是返回一个新字符串。按照指定内容分割字符串data Python,Java,C languages data.split(,) print(languages)去除字符串两端的空格name 小明 print(name.strip())去除两端指定字符text ###Python### print(text.strip(#))统计内容出现的次数text banana print(text.count(a)) # 3 print(len(text)) # 6八、序列切片列表、元组和字符串都具有连续、有序、可以使用下标访问等特点通常可以称为序列。序列支持切片操作序列[开始下标:结束下标:步长]切片遵循“左闭右开”原则包含开始位置但不包含结束位置。例如numbers [0, 1, 2, 3, 4, 5] print(numbers[1:4]) # [1, 2, 3] print(numbers[:3]) # [0, 1, 2] print(numbers[3:]) # [3, 4, 5] print(numbers[::2]) # [0, 2, 4]切片也可以用于字符串和元组text Python print(text[0:3]) # Pyt使用负数步长可以反转序列print(text[::-1]) # nohtyP切片得到的通常是一个新的序列不会直接修改原数据。九、集合集合使用大括号定义主要特点是元素不能重复numbers {1, 2, 3, 3, 2} print(numbers)重复数据会被自动去除。定义空集合时不能使用{}因为{}表示空字典。正确写法是data set()集合不支持下标访问numbers[0] # 报错常用操作包括numbers {1, 2, 3} numbers.add(4) # 添加元素 numbers.remove(2) # 删除指定元素 value numbers.pop() # 取出一个元素 numbers.clear() # 清空集合集合还可以进行数学中的集合运算set1 {1, 2, 3} set2 {3, 4, 5} print(set1.difference(set2)) # set1有、set2没有 print(set1.union(set2)) # 合并两个集合difference()不会修改原集合而difference_update()会直接修改调用它的集合。集合特别适合数据去重names [小明, 小红, 小明, 小刚] unique_names set(names) print(unique_names)十、字典字典使用“键值对”保存数据。每个键对应一个值student { name: 小明, age: 18, score: 95 }字典中的数据不是通过数字下标获取而是通过键获取print(student[name]) print(student[score])字典的键不能重复。如果重复定义同一个键后面的值会覆盖前面的值data { name: 小明, name: 小红 } print(data[name]) # 小红定义空字典有两种方式data1 {} data2 dict()字典的常用操作新增或修改数据student[city] 北京 student[score] 98删除数据del student[age]安全获取数据print(student.get(name)) print(student.get(phone, 暂无手机号))如果使用student[phone]获取不存在的键程序会出现KeyError使用get()时可以提供默认值。获取所有键、值和键值对print(student.keys()) print(student.values()) print(student.items())遍历字典for key, value in student.items(): print(f{key}{value})清空字典和统计键值对数量print(len(student)) student.clear()字典适合保存具有明确属性的数据例如学生信息、商品信息和用户资料。十一、如何选择数据容器面对不同需求时可以按照下面的方式选择数据需要保持顺序并且可能修改使用列表数据需要保持顺序但不允许修改使用元组需要保存文本使用字符串需要去除重复数据或者进行集合运算使用集合需要通过名称查找对应的数据使用字典。例如一个班级的学生姓名可以使用列表students [小明, 小红, 小刚]一个学生的详细信息可以使用字典student { name: 小明, age: 18, scores: [90, 88, 95] }不同容器还可以互相嵌套从而表示更加复杂的数据结构。十二、总结数据容器是 Python 中非常重要的基础知识。列表有序、可重复并且可以修改元组有序但不能修改字符串用于保存文本集合中的元素不能重复字典通过键值对保存数据。

相关新闻

3分钟搭建国标视频监控平台:wvp-GB28181-pro零代码部署指南

3分钟搭建国标视频监控平台:wvp-GB28181-pro零代码部署指南

3分钟搭建国标视频监控平台:wvp-GB28181-pro零代码部署指南 【免费下载链接】wvp-GB28181-pro 基于GB28181-2016、部标808、部标1078标准实现的开箱即用的网络视频平台。自带管理页面,支持NAT穿透,支持海康、大华、宇视等品牌的IPC、NVR接入。…

2026/7/30 14:17:01阅读更多 →
Python实现经纬度距离计算:从Haversine公式到Geopy实战

Python实现经纬度距离计算:从Haversine公式到Geopy实战

1. 从经纬度到距离:不只是两个点那么简单当你在地图上看到两个地点,想知道它们之间到底有多远时,你想到的“距离”是什么?是直线飞过去的空中距离,还是沿着蜿蜒道路开车的实际路程?在涉及地理位置计算的绝大…

2026/7/30 14:17:01阅读更多 →
安卓主题深度自定义指南:从图标包到系统框架的完整美化方案

安卓主题深度自定义指南:从图标包到系统框架的完整美化方案

1. 项目概述:从“能用”到“会玩”的安卓主题自定义 每次看到别人手机里那些酷炫、个性的主题,是不是总有点羡慕?从锁屏动画到图标样式,从通知栏到系统字体,一套好的主题能让你的安卓手机焕然一新,彻底摆脱…

2026/7/30 14:17:01阅读更多 →
CVE-2026-42533 NGINX map漏洞复现、检测修复完整实操教程

CVE-2026-42533 NGINX map漏洞复现、检测修复完整实操教程

2026年7月,F5官方披露了NGINX高危漏洞CVE-2026-42533。这个隐藏长达18年的底层漏洞,存在于NGINX核心的map正则解析模块,绝大多数线上服务器默认启用该模块,受影响覆盖面极广。 和普通配置错误、业务层BUG不同,该漏洞杀…

2026/7/30 15:27:18阅读更多 →
SpringBoot集成Nacos配置中心实战指南

SpringBoot集成Nacos配置中心实战指南

1. Nacos配置中心的核心价值与应用场景 Nacos作为阿里巴巴开源的动态服务发现、配置管理和服务管理平台,已经成为Spring Cloud Alibaba生态中的核心组件之一。在实际开发中,我们经常遇到这样的场景:当微服务部署在不同环境(开发、…

2026/7/30 15:27:18阅读更多 →
如何在Linux上享受专业级电子书阅读体验:Foliate的7个核心功能解析

如何在Linux上享受专业级电子书阅读体验:Foliate的7个核心功能解析

如何在Linux上享受专业级电子书阅读体验:Foliate的7个核心功能解析 【免费下载链接】foliate Read e-books in style 项目地址: https://gitcode.com/gh_mirrors/fo/foliate 还在为Linux上找不到好用的电子书阅读器而烦恼吗?Foliate或许就是你一直…

2026/7/30 15:27:18阅读更多 →
Diva Mod Manager:初音未来模组管理的终极解决方案

Diva Mod Manager:初音未来模组管理的终极解决方案

Diva Mod Manager:初音未来模组管理的终极解决方案 【免费下载链接】DivaModManager 项目地址: https://gitcode.com/gh_mirrors/di/DivaModManager 你是否曾经为《初音未来:歌姬计划 Mega Mix》的模组管理而烦恼?繁琐的安装流程、复…

2026/7/30 15:27:18阅读更多 →
让文物开口说话:具身交互智能驱动的博山炉讲解数字人「青袅」

让文物开口说话:具身交互智能驱动的博山炉讲解数字人「青袅」

摘要:具身交互智能,是让 AI 从「屏幕里的文字」走向「有形象、能开口、会表达」的关键一步。本文记录一次具身交互智能的轻量落地:在一张「博山炉器物展陈」静态网页上,接入魔珐星云 XmovAvatar SDK,搭建一位名为「青袅…

2026/7/30 15:27:18阅读更多 →
湖科大教书匠计算机网络笔记:考研面试核心考点与分层排错实践

湖科大教书匠计算机网络笔记:考研面试核心考点与分层排错实践

1. 项目概述:一份来自湖科大教书匠的“硬核”网络笔记如果你正在学习计算机网络,尤其是为了考研(比如408统考)或者准备技术面试,那你大概率在网上搜索过“计算机网络笔记”。在众多资料中,“湖科大教书匠”…

2026/7/30 15:25:18阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/30 15:03:16阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/30 12:22:27阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/30 15:13:02阅读更多 →
3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 [特殊字符]

3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 [特殊字符]

3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 🚀 【免费下载链接】TrollInstallerX A TrollStore installer for iOS 14.0 - 16.6.1 项目地址: https://gitcode.com/gh_mirrors/tr/TrollInstallerX 你是否曾经因为iOS系统的严格…

2026/7/30 0:00:58阅读更多 →
[GESP202606 四级] 扫雷

[GESP202606 四级] 扫雷

B4557 [GESP202606 四级] 扫雷 https://www.luogu.com.cn/problem/B4557 中国计算机学会(CCF)2026年6月C四级讲解——扫雷 https://www.bilibili.com/video/BV1MCMg6AEXR/ B4557 [GESP202606 四级] 扫雷 https://www.bilibili.com/video/BV1ZKTj6ZEVh/ 2…

2026/7/30 0:00:58阅读更多 →
Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 您是否曾因Windows系统盘空间不足而烦恼?是否遇到过设…

2026/7/30 0:00:58阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/30 0:27:26阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/30 4:47:18阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/29 14:26:42阅读更多 →