字典

1、字典本身是哈希的,是无序的,但字典中的键的集合或值的集合可以是有序的,通过keys()或values()返回一个列表,该列表是可排序的。注:哈希表的算法是获取键,对键执行一个叫做哈希函数的操作,并根据计算的结果,选择在数据结构的某个地址中来存储你的值。

2、字典的创建可以直接赋值;可以通过工厂函数dict()生成,如果参数是可迭代的,即一个序列或是一个迭代器,或是支持迭代的对象,则没个可迭代的元素必须成对出现,eg:dict([['x',1],['y',2]]);还可以用内建方法fromkeys()来创建,字典中元素具有相同的值。eg:d={}.fromkeys(seq,val=None)创建一个字典,以seq中的元素为键,val为所有键的。

3、检查一个字典中是否有某个键的方法是用in

4、字典中的键必须是可哈希的,即键不可变,所以数字和字符串可以作为键,列表和其他字典不行。

5、字典的比较:首先是字典的大小,然后是键,最后是值

6、内建函数(《Python核心笔记》P172):dict.get(key,default=None),对键key,返回对应的值,若不存在此键,返回default的值,因此不必担心引发异常;dict.setdefault(key,default=None),检查字典中是否含有某键,若存在,则返回其值,若不存在,则给这个键赋默认值并返回此值

7、字典的键:不允许一个键对应多个值;键必须是可哈希的,要说明的是,值相等的数字表示相同的键,即整数1和浮点型1.0表示相同的键。

8、字典用于稀疏数据结构:可以只在有值的地方赋值,其他地方可以不设置。当要调用时,可用内建函数get()



集合

1、集合分为可变集合和不可变集合。不可变集合成员是可哈希的,是可以用做字典的键。
集合创建方法:工厂函数set(),frozenset()

2、集合类型操作符:联合(|),交集(&),差集(-),对称差分(^),如果左右两个操作数的类型相同,则所产生的结果类型是相同的,若两个操作数类型不同,则所产生的结果类型与左操作数相同。