您的位置:首页 > 编程语言 > Python开发

python第二版7章笔记--映射和集合类型

2018-01-07 22:01 288 查看

7.1 映射

字典是 Python 语言中唯一的映射类型。映射类型对象里哈希值(键) 和指向的对象(值)是一对多的关系。 它们与 Perl 中的哈希类型(译者注:又称关联数组)相似,通常被认为是可变的哈希表。一个字典对象是可变的,它是一个容器类型,能存储任意个数的 Python 对象,其中也包括其他容器类型。
字典类型和序列类型容器类(列表、元组)的区别是存储和访问数据的方式不同序列类型只用数字类型的键(从序列的开始起按数值顺序索引)。映射类型可以用其他对象类型做键;一般最常见的是用字符串做键(keys)。和序列类型的键不同,映射类型的键(keys)直接,或间接地和存储的数据值相关联。但因为在映射类型中,我们不再用"序列化排序"的键(keys),所以映射类型中的数据是无序排列的。
如何创建字典和给字典赋值 dict2 = {'name': 'earth', 'port': 80} dict2 = {'name': 'earth', 'port': [80,21]}
如何访问字典中的值 dict2.keys() dict2[key] dict2.values()
has_key() 方法在未来Python 版本中弃用,所以用 in 或 not in 是最好的方法 'server' in dict2 # 或 dict2.has_key('server')
如何更新字典 dict2['name'] = 'venus' 更新已有条目 , 增加新条目
如何删除字典元素和字典 dict2.pop('name') # 删除并返回键为“name”的条目 dict2.clear() # 删除 dict2 中所有的条目
字典可以和所有的标准类型操作符一起工作,但却不支持像拼接(concatenation)和重复(repetition)这样的操作。
(键)成员关系操作( in ,not in) dict4 < dict5
cmp() 算法



dict()
当容器类型对象做为一个参数传递给方法 dict() 时很有意思。如果参数是可以迭代的,即,一个序列,或是一个迭代器,或是一个支持迭代的对象,那每个可迭代的元素必须成对出现。
dict([['x', 1], ['y', 2]]) dict(zip(('x', 'y'), (1, 2))) dict(x=1, y=2) 返回 {'y': 2, 'x': 1}
len() 返回所有元素(键-值对)的数目
dict2.keys() dict2[key] dict2.values() dict2.items() 返回一个包含所有(键, 值)元组的列表。
dict.update(dict2) 将字典 dict2 的键-值对添加到字典 dict
dict.pop (key[, default]) 和方法 get()相似,如果字典中 key 键存在,删除并返回 dict[key],如果 key 键不存在,且没有给出 default 的值,引发 KeyError 异常
明确一条原则:每个键只能对应一个项。也就是说,一键对应多个值是不允许的。(像列表、 元组和其他字典这样的容器对象是可以的。 ) 当有键发生冲突(即, 字典键重复赋值), 取最后(最近)的赋值。
为什么键必须是可哈希的?解释器调用哈希函数,根据字典中键的值来计算存储你的数据的位置。如果键是可变对象,它的值可改变。如果键发生变化,哈希函数会映射到不同的地址来存储数据。如果这样的情况发生,哈希函数就不可能可靠地存储或获取相关的数据。

7.2 集合

如何创建集合类型和给集合赋值 s = set('cheeseshop') 返回set(['c', 'e', 'h', 'o', 'p', 's']) frozenset('bookshop') 返回 frozenset(['b', 'h', 'k', 'o', 'p', 's'])
如何访问集合中的值 'k' in s 返回False
如何更新集合 s.add('z') s.update('pypi') s.remove('z')
如何删除集合中的成员和集合 del s
set('shop') < set('cheeseshop') Sets 支持严格( < )子集和非严格 ( <= ) 子集, 也支持严格( > )超集和非严格 ( >= )超集。

联合( | ) 联合(union)操作和集合的 OR其实是等价的,两个集合的联合是一个新集合,该集合中的每个元素都至少是其中一个集合的成员,属于两个集合其
中之一的成员。
交集( & ) 两个集合的交集是一个新集合,该集合中的每个元素同时是两个集合中的成员,即,属于两个集合的成员
差补/相对补集( – ) 两个集合(s 和 t)的差补或相对补集是指一个集合 C,该集合中的元素,只属于集合 s,而不属于集合 t。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python