写在前面
Python核心编程来来回回读过两三遍,很棒的书,尤其作为速查手册使用时。最近计划对其每一部分进行整理,一方面加深对Python的理解,另一方面方便以后在手头没有核心编程时能进行快速查询。本篇主要整理关于Python映射和集合类型(字典,集合)的部分,第一部分是对映射类型的整理,第二部分是对集合的整理。
映射类型
作为Python中最强大的数据类型之一,字典是Python语音中唯一的映射类型。字典类型和序列类型容器类(列表,元祖)的区别是存储和访问数据的方式不同。序列类型只用数字类型的键,是序列化排序,映射类型可以使用其他对象做键(可哈希),是无序排序的。
操作符
一、标准类型操作符
字典可以和所有的标准类型操作符一起工作,除了不支持拼接和重复的操作。详细的标准操作符一览表参加这里。
二、映射类型操作符
1 字典的键查找操作符([])
d[k] #通过键k,查询字典中元素的值
2 成员关系操作(in、not in)
自Python2.2以后,可以不用has_key()方法,而用in和not in来检查某个键是否在字典中。
>>>dict1={'name':'earth','port':80}
>>>name in dict1
True
映射类型的相关函数及内建方法
一、标准类型函数
对一个字典调用type()会返回字典类型,str()返回字典的字符串表示,这些很容易理解。但cmp()比较特殊,对一个字典进行比较时,首先是字典大小的比较,然后是键值,最后是值(使用cmp做字典比较一般不是很有用)。
二、其他相关函数
三、内建方法
下图是内建方法一览表。
集合类型
集合有两种不同的类型,可变集合(set)和不可变集合(frozenset)。可变类型不是可哈希的,因此既不能用作字典的键也不能做其他集合中的元素。不可变集合正好相反。
下图是集合类型总结表,包含了所有集合类型的操作符、函数和方法。
小结
上述部分是对《Python核心编程》一书中映像和集合类型的读书简记,供快速参考查询。
参考文献
[1] Python核心编程 第二版. Wesley J.Chun。