为了实现快速的查找,Python的集合数据结构专门进行了优化。因此,如果主要操作是查找,使用集合就比使用相应的列表要快得多。
对于查找,集合往往是首选的数据结构
集合的基本用法
集合以大括号开始和结束
对象相互之间用逗号分隔
与字典的区别是:字典中使用冒号分隔键和值,而在集合中绝不会出现冒号。
集合不允许有重复,不回维持擦汗如顺序。
集合可以用sorted函数对输出排序
创建集合的两种方法
方法一:
>>> vowels = {'a', 'e', 'i', 'o', 'u', 'u'}
>>> vowels
{'i', 'a', 'e', 'u', 'o'}
方法二:利用set函数传递任意序列来快速生成集合
>>> vowels2 = set('aeeeiooou')
>>> vowels2
{'i', 'a', 'e', 'u', 'o'}
几何方法:并集、差集和交集
合并集合:union
>>> vowels
{'e', 'i', 'u', 'a', 'o'}
>>> word = 'hello'
>>> u = vowels.union(set(word))
>>> u
{'l', 'e', 'i', 'h', 'u', 'a', 'o'}
>>> vowels
{'e', 'i', 'u', 'a', 'o'}
>>> u_list = sorted(list(u))
>>> u_list
['a', 'e', 'h', 'i', 'l', 'o', 'u']
上述操作定义了一个元音集合vowels,一个字符串hello
使用union方法得到了一个新集合u,是vowels集合中的字母与word中的唯一字母组成的合并结果。
最后我们将集合u使用sorted方法转换成为了一个有序列表
差集:difference
给定两个集合,使用difference方法,它会告诉你那些元素值在一个集合而不在另一个几何中。
>>> d = vowels.difference(set(word))
>>> d
{'u', 'a', 'i'}
交集:intersection
intersection方法取一个集合中的对象,与另一个集合中的对象进行比较,报告找到的共同对象。
>>> i = vowels.intersection(set(word))
>>> i
{'e', 'o'}