朋友们,如需转载请标明出处:https://blog.csdn.net/jiangjunshow
声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于这套python教程不是由我所写,所以不如我的AI技术教学风趣幽默,学起来比较枯燥;但它的知识点还是讲到位的了,也值得阅读!PS:看不懂本篇文章的同学请先看前面的文章,循序渐进每天学一点就不会觉得难了!
Python 2.4引入了一种新的类型——集合(set),这是一些唯一的、不可变的对象的一个无序集合(collection),这些对象支持与数学集合理论相对应的操作。根据定义,一个项在集合中只能出现一次,不管将它添加了多少次。集合有着广泛的应用,尤其是在涉及数字和数据库的工作中。
集合具有列表和字典的某些共同行为。例如,集合是可以迭代的,可以根据需要增长或缩短,并且能够包含各种对象类型。一个集合的行为很像一个无值的字典的键。
在Python 2.6中,要创建一个集合对象,可以向内置的set函数传递一个序列或其他的可迭代的对象:
>>> x = set('abcde')
>>> y = set('bdxyz')
注意集合中的元素是随机无序的:
>>> x
set(['a','c','b','e','d']) # 2.6 display format
集合通过表达式操作符支持一般的数学集合运算。
>>> 'e' in x # Membership
True
>>> x - y # Difference
set(['a','c','e'])
>>> x | y # Union
set(['a','c','b','e','d','y','x','z'])
>>> x & y # Intersection
set(['b','d'])
>>> x ^ y # Symmetric difference (XOR)
set(['a','c','e','y','x','z'])
>>> x > y,x < y # Superset,subset
(False,False)
除了表达式,集合对象还提供了对应的函数方法,以及更多的改变集合的方法,集合add方法插入一个元素项目、update是按位置求并集,remove根据值删除一个项目(可以在任何集合实例或集合类型名上运行dir来查看所有可用的方法)。
>>> z = x.intersection(y) # Same as x & y
>>> z
set(['b','d'])
>>> z.add('SPAM') # Insert one item
>>> z
set(['b','d','SPAM'])
>>> z.update(set(['X','Y'])) # Merge: in-place union
>>> z
set(['Y','X','b','d','SPAM'])
>>> z.remove('b') # Delete one item
>>> z
set(['Y','X','d','SPAM'])
作为可迭代的容器,集合也可以用于len、for循环和列表解析这样的操作中。然而,由于它们都是无序的,所以不支持像索引和分片这样的操作:
>>> for item in set('abc'): print(item * 3)
...
aaa
ccc
bbb