Python基础【第九篇】:基础数据类型(集合)

集合

基本定义

Python 还包含了一个数据类型 —— set (集合)。集合是一个无序不重复元素的集。基本功能包括关系测试和消除重复元素。集合对象还支持 union(联合),intersection(交),difference(差,sysmmetric difference(对称差集)等数学运算。大括号或set() 函数可以用来创建集合。注意:想要创建空集合,你必须使用 set() 而不是 {} 。后者用于创建空字典。

创建集合

>>> player = {'kobe','james','harden','kobe','james','jordan'}
>>> #演示去重功能>>> print(player)
{'james', 'harden', 'jordan', 'kobe'}
>>> set('abcdefab')
{'b', 'a', 'c', 'e', 'f', 'd'}
>>> set(['kobe','james','jordan','kobe'])
{'jordan', 'james', 'kobe'}

使用set()方法就相当于将别的序列转换为集合。如果里面是一个字符串,那么就将字符串看做序列转换,将单个字符作为集合的元素。

集合的运算

>>> a = set('abcfdgsrgsabd')
>>> b = set('polkkijfadfvd')
>>> a - b #包含在a中却不包含在b中的元素
{'s', 'c', 'b', 'g', 'r'}
>>> a & b #a 与 b 公共的元素
{'d', 'f', 'a'}
>>> a | b #a 与 b 总共包含的元素
{'b', 'p', 'r', 'o', 'l', 'v', 'k', 'a', 'c', 'f', 'g', 'd', 's', 'i', 'j'}
>>> a ^ b #不同时包含于a ,b 的元素
{'b', 'p', 'r', 'o', 'l', 'v', 'k', 'c', 'i', 's', 'g', 'j'}

集合元素的增加

使用方法set.add()

将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作。

>>> a = {'kobe','james','jordan'}
>>> a.add('马云')
>>> a
{'马云', 'james', 'jordan', 'kobe'}

此方法不能将列表,元组等作为参数,而set.update()可以,且参数可以有多个,使用逗号隔开。

>>> a = {'kobe','james','jordan'}
>>> a.add('harden')
>>> a
{'james', 'harden', 'jordan', 'kobe'}
>>> a.update(['wade','john'])
>>> a
{'kobe', 'james', 'john', 'jordan', 'wade', 'harden'}
>>> a.update([1,2],'tom')
>>> a
{1, 2, 'kobe', 't', 'o', 'james', 'john', 'jordan', 'm', 'wade', 'harden'}

字符串将视为一个序列,添加到集合当中的是字符串中的字符。

 集合元素的移除

使用set.remove()函数

将元素 x 添加到集合 s 中移除,如果元素不存在,则会发生错误。

如下例:

>>> set_example = {1,2,3,4}
>>> set_example.remove(1)
>>> set_example
{2, 3, 4}
>>> set_example.remove(1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 1

但是如果使用方法set.discard()则不会发生上述错误

>>> set = {1,2,3,'马云'}
>>> set.discard('马云')
>>> set
{1, 2, 3}
>>> set.discard('马云')
>>> set
{1, 2, 3}

两个删除的方法均无返回值。

我们也可以随机删除一个元素。使用set.pop()的方法,此方法会返回删除的元素。

>>> set = {1,2,3,'马云'}
>>> set.pop()
1
>>> set
{2, 3, '马云'}
>>> set.pop()
2
>>> set
{3, '马云'}

清空集合中的元素也可使用set.clear()的方法。

>>> set = {1,2,3,'马云'}
>>> set.clear()
>>> set
set()

 

 

posted @ 2018-08-28 14:32  焕熊  阅读(161)  评论(0编辑  收藏  举报