chapter 7,dictionary
dictionary: 字典是经过这样的算法来比较的: 首先是字典的大小,而后是键,最
后是值。
dictionary内建函数和工厂函数:
str(),cmp(),dict()
len(),hash()
字符串和数字能够做为字典的key
,列表,dict都不能够作字典的key值。
dict2.keys()
dict2.values()
dict2.items()
字典类型的方法:
dict.clear() 删除a字
iqf's
典中全部元素'j;tglugvmlhljprhu[pufovkhf;i;pt /
dict.iter()
dict.setdefault(key,
default=None)e
和方法set()类似,若是字典中不存在key 键,由dict[key]=default 为
它赋值。
update()方法能够用来将一个字典的内容添加到另一个字典中
clear()方法能够用来删除字典中的全部的条目
copy() 方法返回一个字典的副本。注意这只是浅复制
setdefault()是自 2.0 才有的内建方法, 使得代码更加简洁,它实现了经常使用的语法: 检查字典
中是否含有某键。 若是字典中这个键存在,你能够取到它的值。 若是所找的键在字典中不存在,
你能够给这个键赋默认值并返回此值。这正是执行setdefault()方法的目的:
键必须是可哈希的
全部不可变的类型都是可哈希的,
一个要说明的是问题是数字:
值相等的数字表示相同的键。换句话来讲,整型数字 1 和 浮点数 1.0 的哈希值是相同的,即它们
是相同的键
集合;
用各类集合内建的方法和操做符添加和删除集合的成员:
s.add('z')
s.update('pypi')
s.remove('p')
s -= set('pypi') == s=s-set('pypi')
等价/不等价被用于在相同或不一样的集合之间作比较。两个集合相等是指,对每一个集合而言,当
且仅当其中一个集合中的每一个成员同时也是另外一个集合中的成员。。集合等价/不等价与集合的类型或集合成员的顺序无关
联合( | )新集合, 该集合中的每一个元素都至少是其中一个集合的成员
交集( & )新集合, 该集合中的每一个元素同时是两个集合中的成员
差补/相对补集( – ), 两个集合(s和t)的差补或相对补集是指一个集合C,该集合中的元素,只属于集合s,而不属
于集合t。差符号有一个等价的方法,difference().
对称差分( ^ ) C,该集合中的元素,只能是属于集合s 或者集合t
的成员,不能同时属于两个集合。对称差分有一个等价的方法,symmetric_difference().
若是左右两个操做数的类型相同,既都是可变集合或不可变集合, 则所产生的结果类型是相同
的,但若是左右两个操做数的类型不相同(左操做数是set,右操做数是frozenset,或相反状况则所产生的结果类型与左操做数的类型相同,上例中能够证实这一点。还要注意,加号不是集合类
型的运算符:
集合类型操做符(仅适用于可变集合)
(Union) Update ( |=),这个更新方法从已存在的集合中添加(可能多个)成员,此方法和update()等价.
保留/交集更新( &=),保留(或交集更新)操做保留与其余集合的共有成员。此方法和intersection_update()等价.
差更新 ( –= ),对集合s 和t 进行差更新操做s-=t,差更新操做会返回一个集合,该集合中的成员是集合s去
除掉集合t 中元素后剩余的元素。此方法和difference_update()等价.
对称差分更新( ^= ),对集合s 和t进行对称差分更新操做(s^=t),对称差分更新操做会返回一个集合,该集合中的成
员仅是原集合s 或仅是另外一集合t中的成员。此方法和symmetric_difference_update()等价.
内建函数:
工厂函数:set()和frozenset()工厂函数分别用来生成可变和不可变的集合