Python的内置对象:集合
摘要: 了解Python内置对象集合:它们是什么,如何创建它们,何时使用它们,内置函数,以及集合之间的关系操作。
原文:https://towardsdatascience.com/python-sets-and-set-theory-2ace093d1607
原文作者:Michael Galarnyk
翻译:老齐
集合 vs 列表和元组
列表和元组都是Python内置数据类型,它们按序列存储值。集合是另一种Python内置数据类型,它也可以存储值。主要的区别在于,集合与列表或元组不同,不能重复项,也不能存储无法排序的值。
Python集合的优点
由于集合不能有重复项,因此集合对于有效地从列表或元组中删除重复值以及执行常见的数学操作(如并集和交集)非常有用。
本文将向你介绍一些有关Python集合的内容:
- 如何创建空集合和非空集合。
- 如何增加和删除集合中的值。
- 如何有效地将集合用于成员检测和从列表中删除重复值等任务。
- 如何执行常见的集合运算,如并集、交集、差集和对称差集。
- 可变集合和不可变集合的区别
好了,我们开始吧。
创建集合
集合是中的值必须是唯一的、不可变的,且是无序的。
可以使用set()
创建空集合。
emptySet = set()
为了创建一个带有值的集合,可以将列表传递给set()
。
dataScientist = set(['Python', 'R', 'SQL', 'Git', 'Tableau', 'SAS']) dataEngineer = set(['Python', 'Java', 'Scala', 'Git', 'SQL', 'Hadoop'])
如果查看上面dataScientist和dataEngineer变量,请注意集合中的值并没有按照添加的顺序排列。这是因为集合是无序的。
包含值的集合也可以使用大括号创建。
dataScientist = {'Python', 'R', 'SQL', 'Git', 'Tableau', 'SAS'} dataEngineer = {'Python', 'Java', 'Scala', 'Git', 'SQL', 'Hadoop'}
请记住,大括号只能用于创建含有值的集合。下图显示,使用不带值的大括号是创建字典而不是集合。
添加和移除集合的值
要添加和移除值,首先必须创建集合。
# Initialize set with values graphicDesigner = {'InDesign', 'Photoshop', 'Acrobat', 'Premiere', 'Bridge'}
向集合中添加值
你可以使用add
方法向集合添加值。
graphicDesigner.add('Illustrator')
必须注意的是,你只能将不可变的值(如字符串或元组)添加到集合中。例如,如果你尝试将列表添加到集合中,则会收到TypeError这样的提醒。
graphicDesigner.add(['Powerpoint', 'Blender'])
有几种方法可以从集合中移除值。
**方法1:**你可以使用remove
方法从集合中移除值。
graphicDesigner.remove('Illustrator')
此方法的缺点是,如果尝试删除不在集合中的值,则会得到KeyError这样的提示。