Python学习:容器类型详解
32 浏览量
更新于2024-08-31
收藏 95KB PDF 举报
"Python学习第三天,主要涵盖了容器类型,包括集合(set)和字典(dict)的定义、操作以及变量的缓存机制。此外,还介绍了不同数据类型的强制转换和自动转换规则。"
在Python中,容器类型是用于存储多个元素的数据结构。今天我们将深入学习其中的两种重要类型:集合和字典。
1. **集合(Set)**
集合是一个无序且不包含重复元素的容器。它的特点是自动去重,因此在创建集合时,即使有重复元素,最终也会只保留一个。创建集合通常使用大括号 `{}` 包裹元素,元素之间用逗号分隔。例如:
```python
setvar = {"刘德华", "郭富城", "张学友", "王文", "王文", "王文"}
print(setvar) # 输出:"刘德华", "郭富城", "张学友", "王文"
```
集合不支持索引访问和修改操作,尝试通过索引获取或修改元素会导致错误。
2. **字典(Dict)**
字典是一种键值对的数据结构,表面上看似有序,实际上内部是无序的。字典可以读取和修改其内容。创建字典同样使用大括号,并用冒号分隔键和值,键值对之间用逗号分隔。例如:
```python
dictvar = {"name": "张三", "age": 30, "city": "北京"}
```
字典的键必须是不可变数据类型,如数字(int, float, bool, complex)、字符串(str)或元组(tuple)。列表(list)、集合(set)和字典(dict)这类可变数据类型不能作为字典的键,因为它们无法被哈希。
在Python 3.6及更高版本中,字典的插入顺序被记住,但这种有序性并不是真正的排序,而是在查找和插入时保持插入时的相对顺序。这称为"插入有序"字典。
3. **变量的缓存机制**
Python中有一些内建的类型如小整数(-5到256),以及一些特殊对象,如None,会进行缓存。这些对象在内存中只有一份,多次创建相同的小整数或None对象,实际上会指向同一内存地址,以提高效率。
4. **数据类型转换**
Python支持不同类型之间的强制转换。例如,可以将其他类型转换为整型(int)、浮点型(float)、布尔型(bool)或复数型(complex)。同样,也可以将字符串(str)、列表(list)、元组(tuple)、集合(set)和字典(dict)等容器类型互相转换。需要注意的是,不同类型之间的加法运算(如bool和int)会触发自动类型转换。
- 强制转换示例:
```python
int("123") # 转换为整型
float(123) # 转换为浮点型
bool(0) # 非零值转为True,零值转为False
complex(1, 2) # 创建复数
```
- 自动类型转换示例:
```python
bool(1) + int(2) # bool转为int再相加
bool(0.5) + float(1) # bool转为float再相加
```
理解这些基本的容器类型和数据转换规则对于深入学习Python至关重要,它们构成了Python编程的基础。在实际应用中,熟练掌握集合和字典的使用能极大地提高代码的效率和可读性。
236 浏览量
177 浏览量
125 浏览量
106 浏览量
2023-04-28 上传
2023-04-28 上传
132 浏览量
102 浏览量
2022-06-22 上传

weixin_38672731
- 粉丝: 5
最新资源
- 虚幻引擎4经典FPS游戏开发包解析
- 掌握LaTeX中psfig.sty的使用技巧
- 探索X102 51学习板:深入嵌入式系统开发
- 深入理解STM32外部中断的实现与应用
- 大冶市数字高程模型(DEM)数据详细解读
- 俄罗斯方块游戏制作教程:Protues实现指南
- ASP.NET视频点播系统源代码及论文:多技术项目资源集锦
- Platzi JavaScript课程体系:全面覆盖初、中、高级
- cutespotify:跨平台MeeSpot音乐播放器兼容SailfishOS
- PictureEx类:在VC6下显示jpg与gif动图
- 基于stc89C51的数字时钟Proteus仿真设计
- MATLAB全面基础教程与实践技巧分享
- 实现双行文字向上滚动效果的js插件
- Labview温度报警系统:实时监控与声光警报
- Java官网ehcache-2.7.3实例教程
- A-Frame超级组件集:超帧的创新与应用