Python学习:容器类型详解
160 浏览量
更新于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编程的基础。在实际应用中,熟练掌握集合和字典的使用能极大地提高代码的效率和可读性。
2019-08-14 上传
2018-05-05 上传
2023-04-28 上传
2023-05-06 上传
2023-04-28 上传
2023-05-05 上传
2023-04-28 上传
2021-12-03 上传
2022-06-22 上传
weixin_38672731
- 粉丝: 5
- 资源: 952
最新资源
- SSM动力电池数据管理系统源码及数据库详解
- R语言桑基图绘制与SCI图输入文件代码分析
- Linux下Sakagari Hurricane翻译工作:cpktools的使用教程
- prettybench: 让 Go 基准测试结果更易读
- Python官方文档查询库,提升开发效率与时间节约
- 基于Django的Python就业系统毕设源码
- 高并发下的SpringBoot与Nginx+Redis会话共享解决方案
- 构建问答游戏:Node.js与Express.js实战教程
- MATLAB在旅行商问题中的应用与优化方法研究
- OMAPL138 DSP平台UPP接口编程实践
- 杰克逊维尔非营利地基工程的VMS项目介绍
- 宠物猫企业网站模板PHP源码下载
- 52简易计算器源码解析与下载指南
- 探索Node.js v6.2.1 - 事件驱动的高性能Web服务器环境
- 找回WinSCP密码的神器:winscppasswd工具介绍
- xctools:解析Xcode命令行工具输出的Ruby库