Python学习笔记--基础篇4

来源:互联网 发布:c4dr14 mac注册机下载 编辑:程序博客网 时间:2024/06/08 08:30

Python学习笔记--基础篇4

集合

集合(set)是一个由唯一元素组成的非排序集合体。“非排序”即其中的元素不以任何特定顺序存储。

集合方法,其中ten = set(range(10)), lows = set((0, 1, 2, 3, 4)), odds = set([1, 3, 5, 7])

方法目的范例结果add集合中添加一个元素lows.add(9)Noneclear移除集合中的所有元素lows.clear()Nonedifference根据一个集合中不存在于另一个集合中的元素,创建出一个新的集合lows.difference(odds)set([0, 2, 4])intersection根据两个集合中共有的元素,创建出一个新的集合lows.intersection(odds)set((1, 3))issubset判断一个集合的所有元素是否都包含于另一个集合lows.issubset(ten)Trueissuperset判断一个集合是否包含了另一个集合中的所有元素lows.issuperset(odds)Falseremove移除集合中的一个元素lows.remove(0)Nonesymmetric_difference根据两个集合中所有不存在于对方的元素,创建出一个新的集合lows.symmetric_difference(odds)set((0, 2, 4, 5, 7, 9))union根据两个集合中所有元素,创建出一个新的集合lows.union(odds)set((0, 1, 2, 3, 4, 5, 7, 9))

集合运算符,集合所支持的所有运算符如表所示。

方法调用运算符set1.difference(set2)set1 - set2set1.intersection(set2)set1 & set2set1.issubset(set2)set1 <= set2set1.issuperset(set2)set1 >= set2set1.union(set2)set1 | set2set1.symmetric_difference(set2)set1 ^ set2

用于存储集合的数据结构成为散列表,每当有元素加入到集合中时,python就会计算该元素的散列码。散列码是一个整数,拥有相等值的元素的散列码肯定是相同的。python只允许集合含有不可变值。不能创造出含有集合的集合,集合本身不能是不可变的。python提供了一个叫做冻结集合的数据类型。冻结集合就是其内容不能发生改变的集合。使用frozenset()即可创建出空的冻结集合;使用frozenset(values)即可创建出带有值的冻结集合,其中,values可以是列表、元组、集合或别的集合体。


字典

字典,又称映射,是由一个由键/值对组成的非排序可变集合体。所有的键都必须是不可变。空的字典写作{},在字典中索引一个并不存在的键会引发错误。字典的更新只需给一个值赋给一个键即可,如果指定的键已经存在,python就会修改与之关联的值。如果指定的键不存在,python就会将其添加进去,同时还会添加与之关联的值。

字典方法

方法目的范例结果clear清空字典内容d.clear()返回None,但d是空的get返回指定键所关联的值,如果指定键不存在,则返回默认值d.get('x', 99)如果d中有'x',则返回d['x'],否则返回99keys以列表的形式返回字典的所有键,所得列表中的每个条目肯定是唯一的birthday.keys(){'Turing', 'Newton', 'Darwin'}items返回(key, value)列表birthday.items()[('Turing', 1912), ('Newton', 1642), ('Darwin', 1809)]values以列表的形式返回字典的所有值,所得列表中的每个条目不一定是唯一的birthday.values()[1912, 1642, 1809]update用另一个字典的内容对当前字典进行更新