Python基础教程(一) - 映像和集合

Python基础教程(一) - 映像和集合

映像类型:字典

字典是Python语言中唯一的映像类型。映像类型对象里哈希值(键,key)和指向对象(值,value)是一对多的关系。一个字典对象是可变的,它是一个容器类型,能存储任意个数的Python对象,其中也包括其他容器类型。字典类型和前面讲的序列类型(列表和元组)的区别是存储和访问方式不同。序列只用数字型的键,字典可以用其他对象类型做键,最常见的是用字符串做键。一个字典条目的语法格式是键值,多条字典条目被包含在大括号({})里。

创建:创建字典只需要把字典赋值给一个变量,不管这个字典是否包含元素。也可以用工厂方法dict()来创建。也可以用一个很方便的内建方法fromkeys()来创建一个“默认”字典,字典中元素具有相同的值。

Python基础教程(一) - 映像和集合

访问:如果想得到某个元素的值,只要中括号加上字典键就可以了。要想遍历一个字典(一般用键),你只需循环查看它的键,或者用迭代器来访问。

Python基础教程(一) - 映像和集合

更新添加一个新数据项或新元素;修改一个已存在的数据项;如果字典键已经存在,则字典中该键对应的值将被新值替代。再展示一种在字典中使用字符串格式符的方法。

Python基础教程(一) - 映像和集合

删除: 一般删除整个字典的操作不常见。通常,你删除字典中的单个元素或者清除整个字典的内容。但如果真想删除一个字典,用del语句。

Python基础教程(一) - 映像和集合

映射类型相关函数

dict()工厂函数被用来创建字典。如果不提供参数,会生成空字典。当容器类型对象作为参数传递给dict()时,如果参数是可迭代的,那每个迭代的元素必须成对出现。在每个值对中,第一个元素是字典的键,第二个元素是字典的值。

Python基础教程(一) - 映像和集合

字典提供了大量方法来帮我们做事情,下面说一些很常见的方法。

len(): 返回所有元素(键值对)的数目,上面图中调用len()结果为2;keys(): 返回一个列表包含字典中所有的键;values(): 返回一个列表包含字典中所有的值;items(): 返回一个列表包含所有(键,值)元组的列表;sorted(): 返回一个列表包含一个有序的键;update(): 可以用来将一个字典的内容添加到另外一个字典中;setdefault(): 检查字典中是否含有某键,如果存在可以取到值,如果不存在可以给这个键赋默认值并返回此值;

Python基础教程(一) - 映像和集合

集合类型

集合对象是一组无序排列的可哈希的值。和其他容器类型一样,支持用in和not in操作符检查成员,由len()得到集合的大小,用for循环迭代集合的成员。集合有两种不同的类型,可变集合(set)和不可以变集合(frozenset)。正如字面意思,可变集合可以添加和删除元素,不可变集合不允许这么做。集合唯一被创建的方法:用集合工厂方法set()和frozenset()。

Python基础教程(一) - 映像和集合

 

集合类型操作符

如果大家学习过其他类型的语言,对于这个就非常好理解了。

联合(|)联合操作和集合的OR其实是等价的,联合后是一个新集合,集合中每个元素至少是其中一个集合的成员,有一个等价的方法union()。

Python基础教程(一) - 映像和集合

交集(&)可以把交集操作比作集合的AND操作。联合后是一个新的集合,集合中每个元素同时是两个集合中的成员,有一个等价的方法intersection()。

Python基础教程(一) - 映像和集合

相对补集(-)指一个集合s,该集合中的元素只属于s而不属于集合t。有一个等价的方法difference()。

 

Python基础教程(一) - 映像和集合

对称差分(^)对称差分是集合的XOR(异或),指的是集合C中的元素只能是属于集合s或者集合t,不能同时属于两个集合。有一个等价方法symmetric_difference()。

Python基础教程(一) - 映像和集合