Python 四大组合数据类型 (Collection Types)

📚 Python 四大组合数据类型 (Collection Types)

Python 提供了四种主要的集合类型,用于在单个变量中存储多个项目。它们在有序性可变性唯一性上有显著区别。


1. 列表 (List) - []

"最常用的多功能容器"

  • 特点:有序、可变、允许重复元素。

  • 语法 :使用方括号 []

  • 适用场景:需要按顺序存储、频繁修改(增删改)的数据。

  • 示例

    python 复制代码
    fruits = ["apple", "banana", "cherry", "apple"] # 允许重复
    fruits[0] = "pear"  # 可变:修改第一个元素
    fruits.append("orange") # 增加元素

2. 元组 (Tuple) - ()

"不可变的'只读'列表"

  • 特点 :有序、不可变、允许重复元素。

  • 语法 :使用圆括号 ()

  • 适用场景:存储不希望被修改的数据(如经纬度、配置参数),且元组比列表占用的内存更小,效率更高。

  • 示例

    python 复制代码
    point = (10, 20)
    # point[0] = 100  # 报错!元组一旦创建不可修改
    single_tuple = (5,) # 注意:单个元素的元组后面必须加逗号

3. 集合 (Set) - {}

"独一无二的无序盒子"

  • 特点无序 、可变、不允许重复

  • 语法 :使用花括号 {},或 set() 函数。

  • 适用场景:去重(如统计唯一访问IP)、进行数学集合运算(交、并、差集)。

  • 示例

    python 复制代码
    ids = {101, 102, 101, 103} 
    print(ids) # 输出 {101, 102, 103},自动去重
    # print(ids[0]) # 报错!无序,没有索引

4. 字典 (Dictionary) - {k:v}

"高效的键值对映射"

  • 特点 :无序(3.7+版本在逻辑上表现为插入有序)、可变、键(Key)唯一

  • 语法 :使用花括号,内部为 key: value 形式。

  • 适用场景:存储具有对应关系的数据,通过键快速查找值(类似查字典)。

  • 示例

    python 复制代码
    user = {"name": "Jojo", "age": 25}
    print(user["name"]) # 通过键访问值
    user["age"] = 26     # 修改值

🚀 核心差异对比表

类型 符号 有序性 可变性 重复性 查找速度
List (列表) [] 可变 允许 慢 (线性搜索)
Tuple (元组) () 不可变 允许 慢 (线性搜索)
Set (集合) {} 可变 不允许 极快 (哈希表)
Dict (字典) {k:v} 3.7+有序 可变 键不允、值允许 极快 (哈希表)

🛠 快速记忆口诀

  • List:方括号,排排坐,可以改,随你加。
  • Tuple:圆括号,排排坐,定死了,不能改。
  • Set:大括号,乱糟糟,没重复,算交并。
  • Dict:大括号,键对值,找键快,不重名。

💡 开发中的选择建议

  1. 如果你只是想存一串东西 ,且之后还要改:用 List
  2. 如果你存的东西永远不该被改 :用 Tuple
  3. 如果你需要快速判断某个东西在不在里面 :用 Set
  4. 如果你需要把一个东西关联到另一个东西上 (比如人名关联手机号):用 Dict

学习贴士

  • 切片操作 (list[1:3]) 只适用于有序的 ListTuple
  • 去重黑科技 :如果你有一个带重复的列表 arr = [1,1,2,2],想去重只需 list(set(arr))
相关推荐
星栈几秒前
一个 pg_try_advisory_lock,搞定 CQRS 投影选主
后端·开源
2401_884454151 分钟前
Python测试代码如何实现自解释_使用pytest描述性命名规范
jvm·数据库·python
dinglu1030DL10 分钟前
Go语言怎么格式化时间_Go语言time.Format教程【详解】
jvm·数据库·python
m0_6245785914 分钟前
SQL数据分析如何剔除极端异常值_配合窗口函数检测偏离度
jvm·数据库·python
神奇小汤圆16 分钟前
面试总被问 Java内存模型和 volatile,为什么总答不到点子上?
后端
川冰ICE17 分钟前
Python爬虫实战⑱|Pandas分组聚合,一键生成统计报表
爬虫·python·pandas
Solis17 分钟前
吊打 HashTable!ConcurrentHashMap 凭什么成为并发神器
后端
宠..18 分钟前
VS Code 修改 C++ 标准同时修改错误检测标准
java·linux·开发语言·javascript·c++·python·qt
2401_8800714020 分钟前
Redis怎样查询集群的整体健康状态_使用cluster info指令查看槽位覆盖率与节点状态
jvm·数据库·python
2301_8159019722 分钟前
Go语言如何写负载均衡器_Go语言负载均衡器实战教程【完整】
jvm·数据库·python