A. python 学习笔记-2、变量的id、type、value
Python中基本数据类型分为可变和不可变两种。
不可变类型包括数字(Number)、字符串(String)和元组(Tuple)。它们的值一旦创建就不可修改。例如,对于数字18,无论创建多少个变量指向它,它们的id都相同,因为它们都指向同一个内存地址。
可变类型包括列表(List)、字典(Dictionary)和集合(Set)。它们的值可以被修改。例如,对于列表['C', 'java', 'Python'],创建多个变量指向它时,它们的id可能不同,因为它们指向不同的内存地址。然而,如果变量之间共享数据,则指向同一块内存。
当创建新变量时,如`one = ("C", "java", "Python")`,新的变量会分配新的内存地址。而通过赋值`three = one`或浅复制`four = .(one)`创建的变量会指向相同的内存地址。深复制`five = .deep(one)`则会创建新数据,拥有独立的内存地址。
因此,理解Python中变量的id、type和value有助于掌握数据的存储和操作方式。不可变类型变量id相同表示它们指向同一内存地址,可变类型则显示了数据共享和复制的差异。
B. 流畅的python-学习笔记
第二章,序列的分类
在深入学习Python的过程中,了解序列的分类对于编写高效代码至关重要。本章将带你探索序列的两大分类方法,以及它们之间的继承关系。
1.1. 分类方法一
序列的分类方法之一在于它们是否可变。可变序列具备添加、删除元素的能力,而不可变序列则不能。
1.2. 分类方法二
另一种分类方式侧重于序列的数据类型,如列表、元组、字符串等。列表是动态的可变序列,元组是静态的可变序列,字符串则是不可变序列。
可变序列继承不可变序列的所有方法,但它们还能进行额外的操作,如插入、删除元素等。
第二章,快速构建序列的方式
构建序列时,Python提供了高效且灵活的工具。列表推导式和生成器表达式是其中两种快速构建序列的方法,它们简洁地实现复杂操作。
2.1. 列表推导式
列表推导式是一种生成列表的简洁方式,可以高效地将条件筛选、循环操作整合在一起。
2.2. 生成器表达式
生成器表达式用于创建生成器对象,它在每次迭代时生成一个值,节省内存资源。生成器表达式的笛卡尔积可以实现多个序列的组合。
第三章,深入探索元组
元组作为序列的一种,具有独特的优势和用法。它们不仅用于记录数据,还支持多种操作。
3.1. 元组的作用
元组非常适合用于记录相关联的数据,如坐标点、日期等,因为它们不可变,确保数据的完整性和一致性。
3.2. 列表与元组的比较
元组与列表在功能上相似,但元组在支持不涉及增删项的列表方法上更加高效。元组的不可变性使得它们成为更安全的选择。
3.3. 拆包
元组的拆包功能提供了多种用途,包括并行赋值、交换变量值、接收多值函数返回结果等。
1)并行赋值
元组的拆包允许我们一次性给多个变量赋值,简化代码。
2)对调两个变量的值
通过拆包,我们可以轻松交换两个变量的值,而无需临时变量。
3)接收函数返回的多个值
当函数返回多个值时,我们可以直接将元组拆包到各个变量,实现简洁的赋值。
4) *
使用星号可以将元组拆包为变量列表,方便进一步处理。
5)嵌套拆包
复杂的拆包操作可以嵌套进行,实现多层数据的结构化处理。