Python 中,列表(list)、字典(dict)、元组(tuple)和集合(set)是四种常用的内置数据结构
Python提供了四种常用数据结构:列表(有序可变)、元组(有序不可变)、字典(键值映射)和集合(无序唯一)。列表适用于需要频繁修改的顺序数据,元组适合存储固定数据,字典通过键高效查找值,集合用于去重和集合运算。每种结构各有特点:列表可增删改查,元组更轻量高效,字典支持快速检索,集合自动去重。掌握它们的特性和使用方法,能有效解决不同场景下的数据存储和处理需求。
在 Python 中,列表(list)、字典(dict)、元组(tuple)和集合(set)是四种常用的内置数据结构,它们各自有不同的特点和适用场景,下面分别说明:
一、列表(list)
定义:有序的、可修改的元素集合,用方括号 [] 表示,元素之间用逗号分隔。
作用:存储一系列有序的元素,支持动态增删改,适合需要频繁修改或保持顺序的场景(如存储序列数据)。
基本用法:
1.创建:
# 空列表
empty_list = []
# 包含元素的列表(元素类型可以不同)
fruits = ["apple", "banana", 3, True]
2.访问元素:通过索引(从 0 开始)或切片(start:end)访问
print(fruits[0]) # 输出:apple(访问第1个元素)
print(fruits[1:3]) # 输出:['banana', 3](访问索引1到2的元素,不包含end)
3.修改元素、增删元素:
fruits[2] = "orange" # 修改索引2的元素
print(fruits) # 输出:['apple', 'banana', 'orange', True]
fruits.append("grape") # 末尾添加
fruits.insert(1, "pear") # 在索引1处插入
del fruits[0] # 删除索引0的元素
fruits.pop(2) # 删除索引2的元素并返回
fruits.remove("banana") # 删除值为"banana"的元素
特点:
有序(元素顺序固定,可通过索引访问)
可重复(允许元素值相同)
可变(可修改、添加、删除元素)
二、元组(tuple)
定义:有序的、不可修改的元素集合,用圆括号 () 表示(元素之间用逗号分隔,单个元素需加逗号避免歧义)。
作用:存储不希望被修改的数据(如固定配置、坐标等),或作为函数返回多个值的容器。
基本用法:
创建、访问:
# 空元组
empty_tuple = ()
# 包含元素的元组(单个元素需加逗号)
point = (3, 4) # 坐标(x,y)
single_tuple = (5,) # 单个元素的元组(必须加逗号)
print(point[0]) # 输出:3
print(point[:2]) # 输出:(3, 4)
#不可修改:尝试修改元素会报错
特点:
有序(同列表,可通过索引访问)
可重复(允许元素值相同)
不可变(创建后无法修改、添加、删除元素)
比列表更轻量(占用内存更少,适合存储固定数据)
三、字典(dict)
定义:键值对(key:value)的集合,用花括号 {} 表示(Python 3.7+ 后保持插入顺序)。
作用:通过唯一的键(key)快速查找对应的值(value),适合存储有映射关系的数据(如用户信息、配置参数等)。
基本用法:
1.创建、访问:
# 空字典
empty_dict = {}
# 包含键值对的字典(键需唯一且不可变,如字符串、数字、元组)
user = {
"name": "Alice",
"age": 25,
"is_student": False
}
print(user["name"]) # 输出:Alice
print(user.get("gender", "unknown")) # 输出:unknown(键不存在时返回默认值)
2.添加 / 修改键值、删除键值对、获取键 / 值 / 键值对:
user["age"] = 26 # 修改已有键的值
user["gender"] = "female" # 添加新键值对
del user["is_student"] # 删除键"is_student"
age = user.pop("age") # 删除键"age"并返回其值
print(user.keys()) # 输出所有键:dict_keys(['name', 'gender'])
print(user.values()) # 输出所有值:dict_values(['Alice', 'female'])
print(user.items()) # 输出所有键值对:dict_items([('name', 'Alice'), ('gender', 'female')])
特点:
键唯一(同一字典中不能有重复的键,重复会被覆盖)
键不可变(不能用列表作为键,可用字符串、数字、元组等)
值可任意(值可以是任何类型,包括列表、字典等)
查找速度快(通过键查找值的效率远高于列表的索引查找)
四、集合(set)
定义:无序的、不重复的元素集合,用花括号 {} 或 set() 函数创建(空集合必须用 set(),不能用 {},后者是字典)。
作用:去重(删除重复元素)、集合运算(如交集、并集、差集)等场景。
基本用法:
1.创建:
# 空集合(必须用set())
empty_set = set()
# 包含元素的集合(自动去重)
numbers = {1, 2, 3, 2, 4} # 实际存储为 {1, 2, 3, 4}
# 用set()转换其他序列(如列表去重)
duplicates = [1, 2, 2, 3]
unique_numbers = set(duplicates) # 结果:{1, 2, 3}
2.添加 / 删除元素:
numbers.add(5) # 添加元素5
numbers.update([6, 7]) # 添加6和7
numbers.remove(3) # 删除元素3
numbers.discard(10) # 元素10不存在,不报错
3.集合运算:
交集(& 或 intersection()):两个集合的共同元素
并集(| 或 union()):两个集合的所有元素(去重)
差集(- 或 difference()):集合 A 有而集合 B 没有的元素
a = {1, 2, 3}
b = {3, 4, 5}
print(a & b) # 交集:{3}
print(a | b) # 并集:{1, 2, 3, 4, 5}
print(a - b) # 差集:{1, 2}
特点:
无序(元素顺序不固定,不能通过索引访问)
不可重复(自动去重,适合需要唯一性的数据)
元素不可变(元素可以是字符串、数字、元组等,但不能是列表、字典等可变类型)
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)