Python学习:容器类型详解

0 下载量 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编程的基础。在实际应用中,熟练掌握集合和字典的使用能极大地提高代码的效率和可读性。