发布时间:2026/8/22 17:15:50
Agent学习路线之——python 入门 ④(字符串、列表、元组、字典、集合) 本文为Python学习第四天的完整笔记涵盖Python五大容器类型字符串、元组、列表、字典、集合的增删改查操作及易错点。适合零基础入门学习建议配合代码实操。一、容器概述在Python中容器是用来存储多个数据的对象。根据是否可变、是否有序等特性分为不同的类型容器类型是否可变是否有序是否可重复定义符号字符串str❌ 不可变✅ 有序✅ 可重复 或 元组tuple❌ 不可变✅ 有序✅ 可重复( )列表list✅ 可变✅ 有序✅ 可重复[ ]字典dict✅ 可变❌ 无序3.7有序❌ 键不可重复{键:值}集合set✅ 可变❌ 无序❌ 不可重复{ }开发小技巧容器都可以直接构造返回。例如直接写a1, b2然后[a, b]不必再先创建一个空容器再添加元素。二、字符串字符串是Python中最常用的容器之一用于存储文本数据。2.1 字符串的不可变性与修改方法字符串是不可变类型不能直接修改原字符串但可以通过方法生成新的字符串。join() —— 连接可迭代对象用指定连接符将可迭代对象中的字符串元素连接成一个新字符串。# 用 - 连接列表中的字符串 words [2026, 08, 19] result -.join(words) print(result) # 2026-08-19 # 注意可迭代对象里面的元素必须都是字符串 # numbers [1, 2, 3] # -.join(numbers) # ❌ 报错必须是字符串split() —— 分割字符串按指定分隔符将字符串分割成列表。date 2026-08-19 parts date.split(-) print(parts) # [2026, 08, 19] # 按空格分割 sentence Python 是最棒的语言 words sentence.split( ) print(words) # [Python, 是最棒的语言]replace() —— 替换字符将字符串中的指定内容替换为新的内容返回新的字符串。text 我喜欢 JavaJava 很好用 new_text text.replace(Java, Python) print(new_text) # 我喜欢 PythonPython 很好用 # 原字符串不会被修改 print(text) # 我喜欢 JavaJava 很好用2.2 字符串查询方法方法作用示例索引通过下标获取单个字符s[0]in判断子串是否在字符串中py in pythoncount()统计子串出现次数s.count(p)index()查找子串第一次出现的索引找不到报错s.index(python)find()查找子串第一次出现的索引找不到返回-1s.find(java)upper()转大写s.upper()strip()去除首尾空格和换行默认s.strip()s python programming # 字符串和字符都可以操作 print(s.count(python)) # 1 print(s.count(p)) # 2 print(s.index(python)) # 0 print(s.find(java)) # -1找不到返回-1不会报错 print(s.upper()) # PYTHON PROGRAMMING # strip 去除首尾空格和换行 text hello world \n print(text.strip()) # hello world三、元组元组tuple是不可变的有序容器一旦创建就不能修改其中的元素。3.1 元组的基本操作元组支持查询操作与字符串类似t (10, 20, 30, 20, 40) # 索引查询 print(t[0]) # 10 print(t[-1]) # 40 # index() 查找位置 print(t.index(20)) # 1第一个20的位置 # count() 统计次数 print(t.count(20)) # 2 # in 判断是否存在 print(30 in t) # True3.2 元组的易错点⚠️ 单元素元组必须加逗号如果元组只有一个元素必须加上逗号否则Python会将其识别为普通括号表达式。tuple1 (1,) # ✓ 这才是元组 tuple2 (2,) # ✓ 元组 tuple3 (3) # ✗ 这是整数 3不是元组 print(type(tuple1)) # class tuple print(type(tuple3)) # class int元组支持相加和切片虽然元组不可变但支持通过拼接生成新元组也支持切片操作。tuple (1, 2, 3) # 直接相加生成新元组 tuple (1, 2) print(tuple) # (1, 2, 3, 1, 2) # 切片操作 print(tuple[:-1]) # (1, 2, 3, 1) print(tuple[1:3]) # (2, 3) # 也支持 in 查询判断 print(4 in tuple) # False四、列表列表list是Python中最常用的可变有序容器支持增删改查各种操作。4.1 列表的增加操作方法作用示例append()在末尾添加一个元素list.append(4)extend()在末尾添加可迭代对象的多个元素list.extend([5,6])insert()在指定位置插入元素list.insert(0, 开头)my_list [1, 2, 3] # append 添加单个元素 my_list.append(4) print(my_list) # [1, 2, 3, 4] # extend 添加可迭代对象列表、元组、字符串等 my_list.extend([5, 6]) print(my_list) # [1, 2, 3, 4, 5, 6] # insert 在指定位置插入 my_list.insert(0, 开头) print(my_list) # [开头, 1, 2, 3, 4, 5, 6]4.2 列表的删除操作方法作用说明del list[索引]删除指定索引元素也可删除整个列表或切片pop(索引)删除并返回指定索引元素默认删除最后一个remove(元素)删除第一个匹配的元素按值删除my_list [a, b, c, d, b] # pop 删除并返回 item my_list.pop(1) print(item) # b print(my_list) # [a, c, d, b] # remove 按值删除删除第一个匹配的 my_list.remove(b) print(my_list) # [a, c, d] # del 删除指定索引 del my_list[0] print(my_list) # [c, d]注意列表这里一般不用del删除整个列表防止操作失误删除原list导致后续代码无法使用。4.3 列表的修改操作my_list [3, 1, 4, 1, 5] # 通过索引修改 my_list[0] 100 print(my_list) # [100, 1, 4, 1, 5] # sort() 排序原地排序不返回新列表 my_list.sort() print(my_list) # [1, 1, 4, 5, 100] # reverse() 反转 my_list.reverse() print(my_list) # [100, 5, 4, 1, 1]4.4 列表的查询操作my_list [apple, banana, cherry] # 索引查询 print(my_list[1]) # banana # index() 查找位置 print(my_list.index(banana)) # 1 # count() 统计次数 print(my_list.count(apple)) # 1 # in 判断是否存在 print(apple in my_list) # True实用技巧判断一个变量在不在列表里面不需要循环直接if 变量 in 列表就行。fruits [apple, banana, cherry] if banana in fruits: print(有香蕉)4.5 列表的易错点和元组一样列表也支持相加、切片、in等操作list1 [1, 2] list2 [3, 4] # 列表相加拼接 print(list1 list2) # [1, 2, 3, 4] # 切片 print(list1[::-1]) # [2, 1] # in 判断 print(2 in list1) # True五、字典字典dict是Python中非常强大的键值对容器通过键key来快速查找值value。5.1 字典的增删改# 创建字典 dict1 {height: 1.8, weight: 90, name: 邵梦飞} # 增/改通过键来添加或修改 dict1[age] 25 # 新增键值对 dict1[height] 1.85 # 修改已有键的值 print(dict1)# 删除操作 dict1 {height: 1.8, weight: 90, name: 邵梦飞} # del 删除指定键值对 del dict1[weight] print(dict1) # {height: 1.8, name: 邵梦飞} # clear() 清空字典 dict1.clear() print(dict1) # {} # pop() 删除并返回指定键的值 dict1 {height: 1.8, weight: 90} value dict1.pop(height) print(value) # 1.8 print(dict1) # {weight: 90}5.2 字典的查询方法方法作用示例dict[键]通过键获取值键不存在报错dict1[name]get(键)通过键获取值键不存在返回Nonedict1.get(age)keys()获取所有键dict1.keys()values()获取所有值dict1.values()items()获取所有键值对dict1.items()dict1 {height: 1.8, weight: 90, name: 邵梦飞} # 获取所有键 print(dict1.keys()) # dict_keys([height, weight, name]) # 获取所有值 print(dict1.values()) # dict_values([1.8, 90, 邵梦飞]) # 获取所有键值对 print(dict1.items()) # dict_items([(height, 1.8), (weight, 90), (name, 邵梦飞)]) # get() 安全获取值 print(dict1.get(age)) # None不会报错 print(dict1.get(age, 0)) # 0可设置默认值5.3 字典易错案例将字符串转换为字典是常见需求需要注意分割逻辑# 需求将 height:1.8 weight:90 name:邵梦飞 转换为字典 data height:1.8 weight:90 name:邵梦飞 my_dict {} # 先按空格分割成列表 list_item data.split( ) print(list_item) # [height:1.8, weight:90, name:邵梦飞] for item in list_item: # 再按冒号分割成键和值 k, v item.split(:) my_dict[k] v print(f字典结果{my_dict}) # 字典结果{height: 1.8, weight: 90, name: 邵梦飞}注意split(:)分割后得到的值都是字符串类型如果需要数值类型需要额外进行类型转换。六、集合集合set是无序、不重复的容器常用于去重和集合运算。# 创建集合 my_set {1, 2, 3, 3, 3} print(my_set) # {1, 2, 3}自动去重 # 增add() my_set.add(4) print(my_set) # {1, 2, 3, 4} # 删remove()元素不存在会报错 my_set.remove(2) print(my_set) # {1, 3, 4} # 查in print(3 in my_set) # True集合的特点集合中的元素必须是可哈希的不可变类型所以列表和字典不能作为集合的元素。七、总结7.1 开发小技巧鼠标悬停看返回和传参在PyCharm等IDE中将鼠标悬停在方法上可以看到返回值和参数说明按CtrlP也可以查看传参提示。快捷键ShiftF6重命名变量/函数时使用ShiftF6可以一键替换所有引用位置避免遗漏。容器直接构造容器都可以直接构造返回如a1, b2然后写[a, b]不必再创建一个空列表再append。7.2 今日重点总结容器核心特点重点方法字符串不可变有序join(),split(),replace(),strip(),find()元组不可变有序单元素必须加逗号(1,), 支持和切片列表可变有序append(),extend(),insert(),pop(),sort(),reverse()字典键值对存储keys(),values(),items(),get(), 通过键增删改查集合无序不重复add(),remove(),in下一篇将继续学习Python函数与面向对象基础敬请期待练习建议动手敲一遍所有代码尤其注意元组单元素逗号、replace返回新字符串、字典get()与直接取键的区别。这些细节是面试和实际开发中的高频踩坑点。

相关新闻

2026/8/22 17:15:49

华为OD机试:二叉树BFS遍历的多语言实现与优化

1. 项目概述:华为OD机试中的二叉树遍历挑战华为OD机试作为华为生态体系的重要人才筛选环节,其编程题目往往聚焦数据结构与算法的核心能力考察。其中,二叉树相关题目出现频率高达37%(根据2022-2023年真题统计)&#xff…

2026/8/22 17:10:49

设备维修维护:如何让维修工单和备件准备不再各自为政

设备维修维护管理面临三重断裂。第一重,任务来源断裂:点检发现的问题、保养计划、故障报修分别走不同流程和系统,没有统一的任务池。第二重,资源准备断裂:维修工单生成了才发现特证人员在休假、关键备件库存为零、作业…

2026/8/22 18:25:54

基于多智能体LLM框架的时序异常检测:从原理到工程实践

1. 从直觉到系统:为什么我们需要“专家级”时序异常检测?在数据驱动的世界里,时间序列数据无处不在:服务器的CPU负载曲线、工厂设备的振动传感器读数、金融市场的股价波动、城市交通的实时流量……这些数据流里,偶尔会…

2026/8/22 18:25:54

水下搜索建模:从声呐物理到贝叶斯路径优化

1. 美赛B题的真实战场:不是写代码,而是解构“搜索”这个动词2024年美国大学生数学建模竞赛(MCM/ICM)B题标题直白得近乎挑衅:Searching for Submersibles——搜索潜水器。没有炫技的术语堆砌,没有模糊的隐喻…

2026/8/22 18:25:54

FSearch 完全上手:让 Linux 文件搜索快到秒回

FSearch 完全上手:让 Linux 文件搜索快到秒回 【免费下载链接】fsearch A fast file search utility for Unix-like systems based on GTK3 项目地址: https://gitcode.com/gh_mirrors/fs/fsearch 你肯定遇到过这种场面:上个月存的一份合同&#…

2026/8/22 18:25:54

数字孪生与多尺度规划:智能体如何重塑自动化事件响应

1. 项目概述:当数字孪生遇上多尺度规划,智能体如何重塑事件响应最近和几个做安全运维和工业自动化的朋友聊天,大家不约而同地提到了一个痛点:面对复杂系统里突如其来的故障或安全事件,传统的响应流程就像在迷宫里摸黑找…

2026/8/22 18:20:54

在东莞找医疗推车气动杆解决方案,哪家产品品质更靠谱?

最近不少做医疗设备的朋友找我问,在东莞找医疗推车用的气动杆,东莞大大小小做气弹簧的那么多,挑花了眼,到底哪家更靠谱?我接触这个行业快十年了:给大家捋捋清楚,帮你少踩坑。医疗推车的气动杆&a…

2026/8/21 13:13:49

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/21 20:14:07

工业传感器与变送器详解:序章 从物理世界到工业数据

序章 从物理世界到工业数据 ——重新认识工业传感器与变送器 工业自动化系统正变得日益复杂。今天的工业现场早已不是简单的控制回路,而是由多层技术共同构成的立体体系:PLC、DCS、SCADA、MES、工业互联网、边缘计算与人工智能。控制系统可以执行复杂算法,工业网络可以实现…

2026/8/21 15:40:01

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/21 15:40:01

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/22 1:39:53

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…