python内置序列二——字典和集合

字典构造方法


字典推导

可以从任何以键值对作为元素的可迭代对象中构建出字典

例:

DIAL_CODES=[(86,'China'),(91,'India')...]

contry_code = {country:code for code, country in DIAL_CODES}

用setdefault处理找不到的键

my_dict.setdefault(key, []).append(new_value)相当于

if key not in my_dict:

    my_dict[key] = []

my_dict[key].append(new_value)

映射的弹性键查询

defaultdict:处理找不到的键的一个选择

比如,我们新建了这样一个字典:dd=defaultdict(list),如果键"new-key"在dd中还不存在的话,表达式dd['new-key']会按照以下的步骤来行事:

1、调用list()来建立一个新列表

2、把这个新列表作为值,'new-key'作为它的键,放到dd中。

3、返回这个列表的引用

集合论

集合的本质是许多唯一对象的聚集,因此,集合可以用于去重。

除了保证唯一性,集合还实现了许多基础的中缀运算符。给定两个集合a和b,a|b返回的是它们的合集,a&b返回的是它们的交集,而a-b得到的是差值。

dict的实现及其导致的结果

1、键必须是可散列的

一个可散列的的对象必须满足以下要求:

(1)支持hash()函数,并且通过__hash__()方法所得到的散列值是不变的。

(2)支持通过__eq__()方法来检测相等性。

(3)若a==b为真,则hash(a) == hash(b)也为真

2、字典在内存上的开销巨大。

3、键查询很快。

4、键的次序取决于添加顺序。

5、往字典里添加新键可能会改变已有键的顺序。

你可能感兴趣的:(python内置序列二——字典和集合)