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()工厂函数分别用来生成可变和不可变的集合