python核心编程 --chapter 7 字典

chapter 7  字典

 1.创建字典

创建字典只需要把字典赋值给一个对象,不管这个字典是否包含元素:dict1={};dict2={'name':'earth','port':80}

也可以用工厂方法dict()来创建:

也可以用内建方法fromkeys()来创建一个默认字典,字典中元素默认相同的值,如果没有给出,默认为None:

2.访问字典中的值

遍历一个字典,只需要循环查看他的键,例如:

3.更新字典

可以通过以下方式对一个字典做修改:

添加一个新数据项或新元素:

修改一个已存在的数据项:

 

删除一个已存在的数据:

4.删除字典和字典元素

删除键为name的条目:

删除dict2中的所有条目:

删除并返回键为name的条目:

5.映射类型操作符

字典的键查找操作符:([])

(键)成员关系操作:in、not in

6.字典比较算法cmp():

(1)比较字典的长度:如果字典的长度不同,那么字典中的键的个数越多,这个字典就越大;

(2)比较字典的键:如果两个字典的长度相同,当dict1中第一个不同的键大于dict2中第一个不同的键,cmp()会返回正值;

(3)比较字典的值:如果两个字典的长度相同而且他们的键也完全匹配,则用字典中每个相同的键所对应的值进行比较。一旦出现不匹配的值,就对这两个值进行直接比较。

 (4)Exact Macth:到此为止,即每个字典有相同的长度、相同的键,每个键也对应相同的值,则字典完全匹配,返回0值。

7.映射类型的内建方法

len():返回所有元素(键-值对)的数目;

hash():判断某个对象是否可以做一个字典的键,返回对象的哈希值

keys()方法:返回一个列表,包含字典中所有的键;

values()方法:返回一个列表,包含字典中的所有的值;

items()方法:返回一个包含所有(键,值)元素的列表;

keys(),values(),items()方法返回的列表时无序的。

dict.update(dict2):将字典dict2的键值对添加到字典dict,字典中原有的键如果与新添加的键重复,那么重复键所对应的原有条目的值将会被新键所对应的值覆盖,原来不存在的条目则被添加到字典中。

8.不允许一个键对应多个值,当有键发生冲突时,取最后的赋值;

9.键必须是可哈希的,所有不可变类型都是可哈希的,其中数字,值相等的数字表示相同的键,即整型1和浮点型1.0的哈希值是相同的,是相同的键。

10.集合

集合(sets)有两种:可变集合(set)和不可变集合(frozenset)。

(1)创建集合类型:唯一方法:用集合的工厂函数set()和frozenset()

(2)访问集合的值

(3)更新集合:用各种集合内建方法和操作符添加和删除集合的成员

只有可变集合可以被修改,删除集合成员用del

(4)集合类型操作符

>成员关系(in,not in)

 

>等价/不等价:被用于在相同或不同的集合之间做比较,两个集合相等是指对每个集合而言,当且仅当其中一个集合中的每个成员同事也是另一个集合中的成员;

 也可以说每个集合必须是另一个集合的子集,即s<=t和s>=t的值均为真,集合等价/不等价与集合的类型或集合成员的顺序无关,只与集合的元素有关。

>子集/超集

小于符号(<,<=)用来判断子集,大于符号(>,>=)用来判断超集。小于和大于意味着两个集合在比较时不能相等,等于允许非严格定义的子集和超集。

严格子集(<),非严格子集(<=),严格超集(>),非严格超集(>=)

只有当第一个集合是第二个集合的严格子集时,称第一个集合“小于”第二个集合,

只有当第一个集合是第二个集合的严格超集时,称第一个集合“大于”第二个集合

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

(6)交集(&):两个集合的交集是一个新集合,该集合的每个元素同时是两个集合的成员,交集符号有一个等价方法:intersection()

(7)差补/相对补集(-)

两个集合(s和t)的差补或相对补集是指一个集合C,该集合中的元素,只属于s,不属于t,差符号有一个等价的方法,difference()

(8)对称差分:是集合的XOR(异或),两个集合的对称差分是指另外一个集合c,该集合中的元素,只能是属于集合s或集合t,等价方法symmetric_difference()。

集合操作符所产生的结果类型与作操作数类型相同:

原文地址:https://www.cnblogs.com/xiaoyinyue/p/6037884.html