第七节:Python的内置容器

1、容器的概念

Python中,可包含其他对象的对象,称之为"容器"。容器是一种数据结构。

常用的容器主要划分为两种:序列(如:列表、元祖等)和映射(如:字典)。序列中,每个元素都有下标,它们是有序的。映射中,每个元素都有名称(又称" 键 "),它们是无序的。除了序列和映射之外,还有一种需要注意的容器------" 集合 "。

2、字典

字典特点:

  • 符号为:大括号

  • 数据为:键值对 形式出现;字典中的"键"必须是独一无二的

  • 键和值之间用:冒号 隔开

注意:一般称冒号前面的为键(key),简称k;冒号后面的为值(value),简称v。合起来称之为"项"。

1、定义字典

字典是 Python 中的唯一内置映射,和之前所提到的列表、字符串一样,字典也拥有它的转换函数------ dict。

python 复制代码
dict1 = {'name': '老肖', 'age': 40}

dict2 = {}

dict1 = dict([('name', 'zs'), ('age', 44)])
dict2 = dict(name='zs', age=44)

print(dict1, dict2)

2、常见操作

  • 增/改/删除
python 复制代码
字典序列[key] = 值
del d[key]
  • 查找
  1. len( dict ): 返回字典 dict 对应的项数。

  2. d k 返回与键 k 相应的值。

  3. k in d: 检查键 k 是否包含于字典 d 。

  • 字典中函数
    • clear:可以清除字典中的所有数据
    • fromkeys:使用该方法可以创建一个新字典,其中包含指定的键,且每个键对应的值都是 None
    • get:直接访问字典中的值
    • items:会返回一个包含所有字典项的列表,其中每个元素都为键值对的形式,且排列顺序不确定**。**
    • keys:返回字典中的所有key,组成一个列表
    • values: 返回字典中所有的value。
    • pop: 删除并返回指定key的值

3、Set集合

由一系列不重复的不可变类型变量组成的可变散列容器。

相当于只有键没有值的字典(键则是集合的数据)。

创建集合使用 {}set(), 但是如果要创建空集合只能使用 set(),因为 {}用来创建空字典。

特点:

  1. 集合中不能出现重复的数据,自动去掉重复数据;

  2. 集合数据是无序的,故不支持下标

4、总结

字符串str:储存字符编码值,不可变,序列

列表list:储存变量,可变,序列

元组tuple:储存变量,不可变,序列

字典dict:储存键值对,可变,散列;键不能重复且不可变

集合set:储存键,可变,散列

可变和不可变的区别

  • 不可变:数据在内存中本质都是不可变,采用按需分配的存储机制;就更无法改变内存中的值。

  • 可变:具有扩容能力,采用预留空间的存储机制

不可变: 基本类型(字符串,int,float等),tuple

可变: list, dict, set

配套课程请私信。

相关推荐
愚公移码2 分钟前
蓝凌EKP18产品:流程虚拟机(PVM)
java·开发语言·前端
十月的皮皮7 分钟前
stm20260720-从新手 C 到量产 STM32 工程:程序设计推导指南
c语言·开发语言·stm32·stm32cubemx·hal库
Echo缘1 小时前
嵌入式系统C语言资源分类与内存分布分析
c语言·开发语言
JaneConan1 小时前
鸿蒙 ArkUI 深水区:@Watch 和 @Observed,状态变了「自动跑」+ 嵌套对象「深层重绘」
开发语言·后端·ui·harmonyos
赤水无泪1 小时前
qt中图标、名称的设置方式
开发语言·qt
王莎莎-MinerU1 小时前
MCP 解决的是工具接入,科研 Agent 还缺的是科学证据接口标准化
开发语言·网络·人工智能·深度学习·pdf·c#·php
橘子海全栈攻城狮2 小时前
【最新源码】基于SpringBoot + Vue的超市管理系统的设计与实现D002
java·开发语言·vue.js·spring boot·后端·spring
在水一缸2 小时前
深入浅出 Catch2:现代 C++ 测试框架的优雅实践
开发语言·c++·单元测试·log4j·测试框架·catch2
AC赳赳老秦2 小时前
OpenClaw 采集任务日志审计:全程记录采集行为,满足合规溯源与企业审计要求
java·大数据·python·数据挖掘·数据分析·php·openclaw
-银雾鸢尾-2 小时前
C#中Object类内的方法
开发语言·c#