Agent学习路线之——python 入门 ④(字符串、列表、元组、字典、集合)

📅 发布时间:2026/8/22 17:15:29
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()与直接取键的区别。这些细节是面试和实际开发中的高频踩坑点。