目录前言一、字符串 str1. 定义方式2. 转义字符与原始字符串3. 格式化方案4. 索引、遍历与切片5. 核心常用方法二、列表 list1. 定义2. 索引、遍历、切片3. 常用操作方法三、元组 tuple1. 定义2. 可用方法四、字典 dict核心规则1. 三种遍历方式2. 常用方法五、集合 set1. 定义2. 增删操作3. 集合数学运算六、五大类型核心特性对比总结七、学习重点提示前言Python 内置五大高频容器数据类型字符串 (str)、列表 (list)、元组 (tuple)、字典 (dict)、集合 (set)是日常开发、脚本编写、项目开发的基础。本文结合核心语法、特性、常用方法整理完整知识点方便复习查阅。一、字符串 str字符串属于不可变类型一旦创建不能直接修改内部字符使用引号定义。1. 定义方式单引号内容、双引号内容二者可以交替嵌套使用三引号... / ...支持换行可作为文档注释、函数注释。# 1.字符串定义 # 单引号、双引号 交替使用 s1 我是双引号字符串 s2 我是单引号字符串 # 三引号支持换行可作为文档注释 s3 第一行 第二行 print(s1, s2) print(s3)2. 转义字符与原始字符串\n换行、\t制表符、\\代表普通反斜杠原始字符串r路径自动忽略转义常用于文件路径。# 2.转义字符 原始字符串r # \n 换行 \t制表符 \\代表普通反斜杠 s_escape Hello\nPython\tJava print(s_escape) # r原始字符串忽略所有转义常用于文件路径 path rC:\Users\Administrator\AppData\pip print(path)3. 格式化方案f{变量}推荐简洁直观a%s % a旧式占位{}.format()格式化方法# 3.字符串格式化 name 库洛米 age 16 # f-string print(f名字:{name},年龄:{age}) # %格式化 print(名字:%s,年龄:%d % (name, age)) # format格式化 print(名字:{},年龄:{}.format(name, age))4. 索引、遍历与切片索引范围[0, len(s)-1]支持负数索引[-1]代表最后一位切片语法[start:stop:step]start 包含stop 不包含step 步长默认 1s[::-1]实现字符串倒序。# 4.索引、下标 s abcdef # 正向索引范围 [0, len(s)-1] print(s[0]) # 负向索引 [-1,-len(s)] print(s[-1]) # 5.两种遍历方式 # 方式1直接遍历每个字符 for char in s: print(char) # 方式2通过索引遍历 for i in range(len(s)): print(i, s[i]) # 6.切片 [start:stop:step] # start包含stop不包含step默认1 s abcdef print(s[1:4]) # start1 stop4 print(s[2:]) # 从start截取到末尾 print(s[:4]) # 从头截取到stop-1 print(s[::-1]) # step为负数字符串倒序5. 核心常用方法查询类len()获取长度find/rfind()查找下标找不到返回 - 1index/rindex()查找下标找不到直接报错count()统计字符出现次数。# 7.常用内置方法 text Hello Python print(len(text)) # len 获取字符串长度 print(text.find(Python)) # find 查找下标找不到返回-1 print(text.rfind(o)) # rfind 从右侧查找 print(text.index(Python)) # index 查找下标找不到报错 print(text.rindex(o)) # rindex 右侧查找 print(text.count(l)) # count 统计字符出现次数大小写转换upper()全部大写lower()全部小写title()单词首字母大写capitalize()首字母大写swapcase()大小写互换。# 大小写转换 print(text.upper()) # 全部大写 print(text.lower()) # 全部小写 print(text.capitalize())# 首字母大写 print(text.title()) # 每个单词首字母大写 print(text.swapcase()) # 大小写互换填充与对齐center()居中、ljust()左对齐、rjust()右对齐、zfill()左侧补 0。# 对齐填充 print(text.center(20, *)) # 居中填充 print(text.ljust(20, -)) # 居左 print(text.rjust(20, -)) # 居右 print(123.zfill(6)) # zfill 左侧补0判断开头结尾startswith()判断前缀endswith()判断后缀。# 首尾判断 print(text.startswith(He)) # 判断开头 print(text.endswith(on)) # 判断结尾去除空白strip()两侧空白lstrip()左侧rstrip()右侧removeprefix/removesuffix删除指定首尾内容。# 去除首尾字符 str_space test print(str_space.strip()) # 去除两侧空白 print(str_space.lstrip()) # 去除左侧 print(str_space.rstrip()) # 去除右侧分割拼接替换split()分割字符串join()使用字符串拼接可迭代对象replace()字符替换。# 分割、拼接、替换 info 苹果,香蕉,橙子 lst info.split(,) # split 按照字符切分字符串 print(.join(lst)) # join 使用字符串拼接可迭代对象 print(info.replace(苹果, 葡萄)) # replace 替换内容编码判断encode()字符串转字节decode()字节转回字符串# 8.编码、解码 msg 测试文字 byte_data msg.encode(utf-8) # encode 字符串转字节流 print(byte_data.decode(utf-8)) # decode 字节流转字符串isalpha()全字母isdigit()全数字、isalnum()字母 数字。# 9.字符判断is系列 print(abc.isalpha()) # 是否全部字母 print(123.isdigit()) # 是否全部数字 print(abc123.isalnum())# 是否字母数字二、列表 list可变有序容器最常用的数据结构可以存放任意类型元素支持增删改查。1. 定义[]字面量list()将可迭代对象转为列表。# 1.列表定义 lst1 [] # 字面量空列表 lst2 list(python) # list() 将可迭代对象转为列表 print(lst1, lst2)2. 索引、遍历、切片索引规则和字符串一致支持正负索引# 2.索引 lst [10,20,30,40] # 正向索引[0, len(lst)-1] 负向索引[-1,-len(lst)] print(lst[0]) print(lst[-1])两种遍历方式# 3.两种遍历方式 # 方式1直接遍历元素 for item in lst: print(item) # 方式2通过索引遍历 for i in range(len(lst)): print(i, lst[i])切片语法[start:stop:step]用法和字符串完全一致。# 4.切片 [start:stop:step] data [0,1,2,3,4,5] print(data[1:4]) print(data[::-1])3. 常用操作方法查询index()获取元素索引不存在报错count()统计元素次数in判断元素是否存在。# 5.查询方法 lst [1,2,2,3] print(lst.index(2)) # index 返回元素索引找不到报错 print(lst.count(2)) # count 统计元素出现次数 print(2 in lst) # in 判断元素是否存在新增append()末尾追加单个元素insert(index, obj)指定位置插入extend()把可迭代对象元素依次追加到列表。# 6.新增方法 lst [1,2,3] lst.append(4) # append 在末尾插入单个元素 lst.insert(0, 0) # insert 在指定索引位置插入元素 lst.extend([5,6]) # extend 将可迭代内元素依次追加到末尾 print(lst)删除pop()默认删除末尾可指定索引删除返回被删除元素remove()删除指定元素不存在时报错clear()清空列表。# 7.删除方法 lst [1,2,3,4,5] lst.pop() # pop 默认删除末尾元素返回被删除值 lst.pop(0) # pop(index) 删除指定索引元素 lst.remove(3) # remove 删除指定元素不存在报错 # lst.clear() # clear 清空列表 print(lst)排序反转sort()原地排序reverseTrue降序reverse()原地反转列表。# 8.排序、逆序 num_list [3,1,4,2] num_list.sort() # sort 默认升序 num_list.sort(reverseTrue) # reverseTrue 降序 num_list.reverse() # reverse 列表逆序 print(num_list)⚠️ 列表是可变类型方法大多原地修改不会返回新列表。三、元组 tuple不可变有序容器和字符串一样不能修改内部元素。1. 定义()空元组单个元素必须写(a,)逗号不能省略(a)只是括号表达式tuple(可迭代对象)类型转换。# 1.元组定义 t1 () # 空元组 t2 (666,) # 单个元素逗号不能省略(666)只是表达式 t3 (10,20,30,瓜瓜) t4 tuple([1,2,3]) # tuple() 可迭代对象转为元组 print(t2, t3) # 重点元组和字符串一样不可变不能修改内部元素 # t3[0] 999 代码运行直接报错2. 可用方法仅两个内置方法count()统计元素出现次数index()获取第一个匹配元素索引找不到报错适用场景数据不允许被修改保证数据安全可作为字典的 key。# 2.内置方法只有两个 t (1,2,2,3) print(t.count(2)) # count 统计元素出现次数 print(t.index(3)) # index 获取第一个匹配元素索引找不到报错四、字典 dict键值对存储结构基于哈希表实现查询速度 O (1)。核心规则key键必须是不可变类型字符串、数字、元组value 可以是任意类型# 1.字典定义 # key必须是不可变类型value可以是任意类型 user {name:瓜瓜, pwd:123456}1. 三种遍历方式python运行# 2.三种遍历方式 for k in user.keys(): # 遍历所有键 print(键,k) for v in user.values(): # 遍历所有值 print(值,v) for k,v in user.items(): # 同时遍历键值对 print(k, v)2. 常用方法get(key, 默认值)安全取值key 不存在不会报错pop(key)删除指定键返回对应 valuepopitem()删除最后一组键值对clear()清空字典d[key] value新增 / 修改键值setdefault(key, value)key 不存在则新增key 存在不修改原值update(字典)合并字典fromkeys()快速创建字典多个键共用同一个初始值。# 3.常用操作 user {name:瓜瓜} print(user.get(name)) print(user.get(age, 0)) # get(key,default) 安全取值不存在返回默认值 # 新增/修改键值 user[age] 18 # setdefaultkey不存在新增key存在不修改原值 user.setdefault(sex, 女) # 删除操作 user.pop(sex) # pop(key) 删除指定键返回value # user.popitem() # popitem 删除最后插入的键值对 # user.clear() # clear 清空字典 # update合并字典 info {height:165} user.update(info) print(user) # fromkeys批量构建字典所有value初始值相同 new_dict dict.fromkeys([a,b,c], 0) print(new_dict)五、集合 set可变无序容器元素自动去重底层同样哈希实现。1. 定义{元素1,元素2}set()创建空集合不能用{}{}是空字典。# 1.集合定义 s1 {1,2,3,3} # 自动去重 s2 set([1,2,2,3]) # empty_set {} ❌ 这是空字典空集合必须使用 set() empty_set set() print(s1)2. 增删操作add()添加单个元素update()批量添加可迭代对象内所有元素pop()随机删除一个元素remove(x)删除指定元素不存在报错discard(x)删除指定元素不存在不报错clear()清空集合。# 2.增加元素 s {1,2,3} s.add(4) # add 添加单个元素 s.update([5,6]) # update 批量添加可迭代对象内所有元素 print(s) # 3.删除元素 s.remove(2) # remove 删除指定元素不存在直接报错 s.discard(999) # discard 删除指定元素不存在不报错 s.pop() # pop 随机删除一个元素 # s.clear() # clear 清空集合 print(s)3. 集合数学运算交集intersection()、交集更新修改原集合intersection_update()并集union()差集difference()、差集更新修改原集合difference_update()对称差集symmetric_difference()对称差集更新修改原集合symmetric_difference_update()# 4.集合数学运算 s_a {1,2,3,4} s_b {3,4,5,6} # 交集 print(s_a.intersection(s_b)) # 并集 print(s_a.union(s_b)) # 差集 print(s_a.difference(s_b)) # 对称差集 print(s_a.symmetric_difference(s_b)) # 更新类运算原地修改集合 # s_a.intersection_update(s_b) # s_a.difference_update(s_b) # s_a.symmetric_difference_update(s_b)六、五大类型核心特性对比总结表格类型是否有序是否可变是否允许重复核心特点str 字符串有序❌不可变允许字符重复文本处理不能修改内部字符list 列表有序✅可变允许元素重复通用容器频繁增删改首选tuple 元组有序❌不可变允许元素重复数据只读、安全可做字典 keydict 字典有序 (python3.7)✅可变key 不可重复键值对快速查找set 集合无序✅可变元素不允许重复快速去重、集合运算七、学习重点提示不可变类型str、tuple → 无法原地修改操作一般返回新数据可变类型list、dict、set → 方法大多原地修改留意变量共享引用问题索引、切片语法字符串、列表、元组通用字典、集合不支持切片集合天然去重日常列表去重最简单写法list(set(列表))字典get()优先使用避免键不存在引发报错区分remove()和discard()、index()和find()处理找不到元素时行为不同。