数据序列(也常被称为 “序列类型”)是指按一定顺序排列、可通过索引访问 的数据集合。
- 支持索引(正向从 0 开始,反向从 - 1 开始)
特性介绍:
1. 字符串(str)- 不可变的字符序列
- 字符串是不可变的字符序列,用于存储文本数据,用单引号
' ' 、双引号 " " 或三引号 ''' ''' / """ """ 定义。 - 核心特性:有序、可索引、不可修改、可切片、支持拼接 / 重复。
# 1. 定义字符串s1 = "Hello"s2 = 'Python's3 = """多行字符串"""# 2. 索引与切片(序列通用)print(s1[0]) # 正向索引:输出 H(索引从0开始)print(s1[-1]) # 反向索引:输出 o(最后一个元素)print(s1[1:4]) # 切片:输出 ell(左闭右开,取1-3索引)print(s1[::-1]) # 反转:输出 olleH# 3. 常用方法(字符串专属)print(s1.upper()) # 转大写:HELLOprint(s1.replace("l", "x")) # 替换:Hexxoprint(s1.split("e")) # 分割:['H', 'llo']print(s1.startswith("He")) # 开头判断:Trueprint(s1.strip()) # 去除首尾空白(无空白则返回原字符串)# 4. 不可修改特性(以下代码报错)# s1[0] = 'h' # TypeError: 'str' object does not support item assignment
2. 列表(list)- 可变的通用序列
- 列表是 可变 的有序序列,可存储任意类型数据(数字、字符串、列表、字典等),用方括号
[] 定义,元素用逗号分隔。 - 核心特性:有序、可索引、可修改、可切片、支持增删改查、动态扩容。
- 存储动态变化的数据集(如用户列表、商品列表、爬虫结果);
# 1. 定义列表lst = [10, "apple", 3.14, True, [1,2]] # 混合类型元素# 2. 索引/切片/修改print(lst[2]) # 输出 3.14lst[0] = 100# 修改元素:[100, 'apple', 3.14, True, [1,2]]print(lst[1:4]) # 切片:['apple', 3.14, True]# 3. 增删改查核心方法lst.append(6) # 末尾添加:[100, 'apple', 3.14, True, [1,2], 6]lst.insert(1, "banana") # 指定位置插入:[100, 'banana', 'apple', 3.14, True, [1,2], 6]lst.remove("apple") # 删除指定元素:[100, 'banana', 3.14, True, [1,2], 6]lst.pop(2) # 删除指定索引元素:[100, 'banana', True, [1,2], 6]del lst[3] # 直接删除索引元素:[100, 'banana', True, 6]lst.clear() # 清空列表:[]# 4. 其他常用操作lst = [3,1,2]lst.sort() # 排序:[1,2,3]lst.reverse() # 反转:[3,2,1]print(lst.index(2)) # 查找元素索引:1print(lst.count(3)) # 统计元素出现次数:1
3. 元组(tuple)- 不可变的通用序列
- 元组是 不可变 的有序序列,可存储任意类型数据,用圆括号
() 定义(也可省略括号),元素用逗号分隔。 - 核心特性:有序、可索引、可切片、不可修改、占用内存更小、可作为字典键 / 集合元素。
- 存储固定不变的数据集(如坐标
(x,y) 、配置参数、函数返回多个值);
# 1. 定义元组t1 = (10, "apple", 3.14) # 标准定义t2 = 20, "banana"# 省略括号(元组打包)t3 = (50,) # 单个元素必须加逗号(否则视为普通数值)t4 = tuple([1,2,3]) # 从列表转换# 2. 索引/切片(仅读操作)print(t1[1]) # 输出 appleprint(t1[-2:]) # 切片:('apple', 3.14)# 3. 不可修改特性(以下代码报错)# t1[0] = 100 # TypeError: 'tuple' object does not support item assignment# 4. 常用操作print(len(t1)) # 长度:3print(3.14in t1) # 成员判断:Truet5 = t1 + t2 # 拼接:(10, 'apple', 3.14, 20, 'banana')print(t5 * 2) # 重复:(10, 'apple', 3.14, 20, 'banana', 10, 'apple', 3.14, 20, 'banana')
4. 字典(dict)- 键值对的无序 / 有序集合
- 字典是 可变 的键值对(key-value)集合,3.7 及以上版本默认按插入顺序保存,用大括号
{} 定义,键值对用:分隔,元素用逗号分隔。 - 键(key):必须是 不可变类型 (字符串、数字、元组),且唯一;
- 支持快速查找(通过键找值,时间复杂度 O (1))。
- 存储具有映射关系的数据(如用户信息、配置项、数据库记录);
- 需要快速通过唯一标识(键)查找数据的场景(如缓存、索引)。
# 1. 定义字典user = {"name": "小明","age": 18,"gender": "男","hobbies": ["篮球", "游戏"]}# 2. 访问/修改值print(user["name"]) # 通过键访问:小明user["age"] = 19# 修改值:age变为19print(user.get("height", 175)) # 安全访问(无key返回默认值175)# 3. 增删改查核心方法user["address"] = "北京"# 添加键值对del user["gender"] # 删除指定键值对user.pop("age") # 删除并返回值:19user.update({"phone": "13800138000"}) # 批量更新/添加keys = user.keys() # 获取所有键:dict_keys(['name', 'hobbies', 'address', 'phone'])values = user.values() # 获取所有值:dict_values(['小明', ['篮球', '游戏'], '北京', '13800138000'])items = user.items() # 获取所有键值对:dict_items([('name', '小明'), ...])# 4. 遍历字典for k, v in user.items(): print(f"{k}: {v}")
5. 集合(set)- 无序不重复的元素集合
- 集合是 可变 的无序集合,元素唯一(自动去重),用大括号
{} 定义(空集合需用 set() ,而非 {} )。 - 去重(如列表去重
list(set(lst)) );
# 1. 定义集合s1 = {1, 2, 3, 3, 4} # 自动去重:{1,2,3,4}s2 = set([2, 4, 5, 6]) # 从列表转换:{2,4,5,6}s3 = set() # 空集合(不能用{},{}是空字典)# 2. 增删操作s1.add(5) # 添加元素:{1,2,3,4,5}s1.remove(3) # 删除元素(元素不存在报错)s1.discard(10) # 删除元素(元素不存在不报错)s1.pop() # 随机删除一个元素(无序特性)s1.clear() # 清空集合# 3. 集合运算(核心)s1 = {1,2,3,4}s2 = {3,4,5,6}print(s1 & s2) # 交集:{3,4}print(s1 | s2) # 并集:{1,2,3,4,5,6}print(s1 - s2) # 差集:{1,2}(s1有s2无)print(s1 ^ s2) # 对称差集:{1,2,5,6}(仅一方存在)