Python集合(set)

《Python集合(set)》

简介

集合(set)是Python中标准数据类型之一,这个数据类型跟我们数学中的集合概念一样。它也是容器类型,存储着无序不重复的数据。集合元素可以做字典中的键,因此,我们应该想到集合中的元素必须为不可变类型(数字、字符串、元组)。

集合的定义

将数据用{}包含的数据类型称为集合,这与字典很像,但是字典包含的是键值对。集合有两种创建方式:

直接创建:

调用set()函数:

集合的特点

所谓存在即合理,集合虽然使用的场合很少,但是也有自己适应的场合。集合的特点如下:

  • 集合中的元素是无序、不重复的值;
  • 集合中的元素是不可变数据类型;
  • 集合中的元素不能通过切片工具访问
  • 可以进行集合的运算。

访问集合中的值

虽然不能通过切片工具访问集合中的值,但是我们可以判断一个值是否存在集合中,或者遍历这个集合:

集合中添加值

有两种向集合添加值的方法:

使用add()方法:

使用update()方法:

删除集合中的值

有五种删除集合中的值的方法可供选择:

使用remove()方法:

使用discard()方法:

使用pop()方法:

使用clear()方法:

使用del语句:

集合方法

现将集合方法总结如下:

方法 描述
set.add() 为集合添加元素
set.clear() 移除集合中的所有元素
set.copy() 拷贝一个集合
set1.difference(set2) 返回一个新集合,该集合是set1的元素,但不是set2的元素
set1.difference_update(set2) set1中属于set1但不包含在set2中的元素
set.discard() 删除集合中指定的元素
set1.intersection(set2) 返回集合set1和set2的交集
set1.intersection_update(set2) set1中属于set1和set2的元素
set1.isdisjoint(set2) 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False
set1.issubset(set2) 判断指定集合set1是否为集合set2的子集
set1.issuperset(set2) 判断集合set2是否为集合set1的子集
set.pop() 随机移除元素
set.remove() 移除指定元素
set1.symmetric_difference(set2) 返回一个新集合,该集合是set1和set2的元素,但不是两者共有的元素
set1.symmetric_difference_update(set2) set1中元素是set1和set2的元素,但不是两者共有的元素
set1.union(set2) 返回两个集合的并集
set.update() 给集合添加元素

代码演示:

总结

我们介绍了集合(set)数据类型,事实上这种数据类型使用的场合比较少。它的好处是能够去掉重复数据,使用数学上的集合运算。至此,Python中六种标准数据类型就介绍完毕。

点赞

发表评论

邮箱地址不会被公开。 必填项已用*标注

18 − 10 =