1、对象根据分类来共享操作;例如,字符串、列表和元组都共享诸如合并、长度和索引等操作。
2、只有可变对象(列表、字典和集合)可以原处修改;我们不能原处修改数字、字符串或元组。
3、文件导出唯一的方法,因此可变性并不真的适用于它们------当处理文件的时候,它们的状态可能会修改,但是,这与Python的核心类型可变性限制不完全相同。
4、表1中的“数字”包含的所有数字类型:整数( 与Python 2.6的整数有区别),浮点数、复数、小数和分数。
5、表1中的字符串包括str,以及Python 3.0中的bytes 和Python 2.6中的unicode Python 3.0中的bytearray字符串类型是可变的。
6集合类似于一个无值的字典的键,但是,它们不能映射为值,并且没有顺序;因此,集合不是一个映射类型或者一个序列类型,frozenset是集合的一个不可变的版本。
7除了类型分类操作,表1中的Python 2.6和Python 3.0的所有类型都有可调用的方法、这些方法通常特定于它们的类型。
表1:对象分类
对象灵活性
。列表、字典和元组可以包含任何种类的对象
。列表、字典和元组可以任意嵌套
。列表和字典可以动态地扩大和缩小
引用VS拷贝
。没有限制条件的分片表达式(L[:])能够复制序列
。字典copy方法(X.copy())能够复制字典
。有些内置函数(例如,list)能够生成拷贝(list(L))
。copy标准库模块能够生成完整拷贝
比较、相等性和真值
* “==” 操作符测试值的相等性
* “is” 表达式测试对象的一致性
* “>,<” 比较大小
* 数字通过相对大小进行比较
* 字符串是按照字典顺序,一个字符接一个字符地进行比较("abc"< "ac")
* 列表和元组从左到右对每部分的内容进行比较
* 字典通过排序之后的 ( 键、值)列表进行比较。字典的相对大小比较在Python 3.0中不支持,但是,它们在Python 2.6及更早的版本有效,就像是比较排序的(键、值)列表一样
* 数字混合类型比较(例如,1< 'spam')在Python 3.0中是错误的。Python 2.6中允许这样比较,但是使用一种固定但任意的排序规则。通过代理,这也适用于排序,它在内部使用比较:非数字的混合类型集合不能在Python 3.0中排序