Python学习:容器类型详解
90 浏览量
更新于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-05-05 上传
2023-05-11 上传
2023-11-29 上传
2023-05-17 上传
2024-10-08 上传
2023-08-15 上传
2023-06-01 上传
weixin_38672731
- 粉丝: 5
- 资源: 952
最新资源
- 2-求职简历-word-文件-简历模版免费分享-应届生-高颜值简历模版-个人简历模版-简约大气-大学生在校生-求职-实习
- C++ IPHelper IP输入控件
- alcohol-or-gasoline:具有功能的应用程序,根据用户为每种物质输入的价格,使用酒精或汽油是否更有利,请回答用户。 在此应用程序中,全局变量和局部变量的原始类型发生了变化,并且采用了对它们之间建立联系的方法承担全部责任的原则
- 加减法自动生成工具@QT
- fullstack-react-graphql:在后端使用GraphQL和MongoDB在前端使用React.js制作的CRUD应用程序
- 基于Robert交叉梯度的图像锐化.zip
- anoninja
- sparrow:一种c风格的玩具语言,用llvm实现
- 1-求职简历-word-文件-简历模版免费分享-应届生-高颜值简历模版-个人简历模版-简约大气-大学生在校生-求职-实习
- graphein:蛋白质图库
- CV_MarieLATASTE_V2:CV_MarieLATASTE的第二版
- (修)09-07 罗灿丽(4).zip
- VC++在程序中用代码注册和卸载ocx控件
- riru_storage_redirect:存储隔离(存储重定向)是一个为应用程序提供隔离存储功能的应用程序。 它可以防止设计不当的应用程序使您的存储混乱,并让您控制文件可以访问的文件
- Documentation:用于在我们的官方主页上生成文档的文件
- episode-47:第 47 集 - 使用 Ansible 进行零停机部署(第 44 部分)