当前位置:首页>python>Python基础:序列、字典和集合的区别,一张表搞懂三大核心数据结构

Python基础:序列、字典和集合的区别,一张表搞懂三大核心数据结构

  • 2026-10-11 07:14:25
Python基础:序列、字典和集合的区别,一张表搞懂三大核心数据结构

刚开始学Python的时候,是不是经常被各种数据结构绕晕?

明明都是存数据,列表、元组、字典、集合到底该用哪个?今天我们用最直观的方式把它们讲透。


🔍 一、先搞懂最基础的分类

Python里常用的容器类数据结构,其实可以归为三大类:

  • 序列类型
    :列表(list)、元组(tuple)、字符串(str)
  • 映射类型
    :字典(dict)
  • 集合类型
    :集合(set)

它们最核心的区别,就在于元素的存储方式和访问规则。

📌 1、序列类型:按位置顺序存储

序列的最大特点是元素有序、可重复,每个元素都有对应的索引下标。

# 列表(可变序列) my_list = [1, 2, 3, "apple"] print(my_list[0])  # 通过索引访问第一个元素:1  # 元组(不可变序列) my_tuple = (1, 2, 3) my_tuple[0] = 4  # 报错:元组不允许修改 
 提示:序列都支持切片、遍历、拼接操作,可变和不可变的区别仅在于创建后能否修改元素。 

📌 2、字典:键值对一一映射

字典存储的是键(key)-值(value)对,通过键来访问值,而不是索引。

my_dict = {"name": "张三", "age": 20} print(my_dict["name"])  # 通过key访问value:张三  # key必须是不可变类型(字符串、数字、元组),且唯一不重复 

Python 3.7+版本中字典默认保留插入顺序,但核心访问逻辑还是依赖key而非位置。

📌 3、集合:无序不重复的元素集

集合的特点是元素无序、唯一,底层用哈希表实现,天然支持去重和集合运算。

my_set = {1, 2, 2, 3} print(my_set)  # 自动去重:{1, 2, 3}  # 支持交集、并集、差集等操作 print({1,2,3} & {2,3,4})  # 交集:{2,3} 
 注意:集合无法通过索引访问元素,因为本身没有顺序概念。 

💡 二、一张表搞懂所有差异

我把三类数据结构的核心特性整理成了对比表,建议保存:

特性
序列
字典
集合
元素有序性
有序
3.7+有序
无序
元素重复性
可重复
key不可重复
不可重复
访问方式
索引
key
遍历/成员判断
是否可变
列表可变、元组不可变
可变
可变
查询速度
O(n)
O(1)
O(1)

🎯 三、实际开发怎么选?

记住三个最典型的使用场景,90%的情况都不会选错:

  • ✅ 按顺序存储同类型/不同类型数据,需要按位置访问 → 用列表/元组
  • ✅ 需要存储一一对应的映射关系,通过键快速查询 → 用字典
  • ✅ 需要快速去重、判断元素是否存在、做集合运算 → 用集合

举个最常见的例子:统计一篇文章里的单词出现次数,就可以用字典存统计结果,用集合做单词去重。

words = ["apple", "banana", "apple", "orange", "banana", "apple"]  # 用字典统计次数 count = {} for word in words:       count[word] = count.get(word, 0) + 1   print(count)  # {'apple': 3, 'banana': 2, 'orange': 1}    # 用集合获取不重复单词   unique_words = set(words)   print(unique_words)    # {'apple', 'banana', 'orange'} 

今天的内容就到这里,是不是比死记硬背概念好懂多了?

可以试着写一段代码,分别用三类数据结构存你的个人信息,感受下差异~

如果觉得有用,欢迎点个赞、转发给身边的Python初学者😊

最新文章

随机文章