Python基础(5)——集合的定义和操作

集合是Python的基本数据类型,在下面这篇文章中,我将简单介绍一下集合的定义和常见的操作。

1. 集合的定义

  • 集合是无序的,所以不支持下标索引来查找元素。
  • 在python中,集合和字典一样,都使用大括号,而且集合中的每个元素都是唯一的。
  • 集合的创建很简单,只需要在大括号中添加元素,并使用逗号隔开即可。
  • 集合是一种可变的数据类型。
  • 集合的格式:集合名 = {元素1,元素2,元素3...}

如下实例:my_set = {1, 2, 3, 3, 3, 2}实际等价于 my_set = {1, 2, 3}

my_set = {1, 2, 3, 3, 3, 2}
print(my_set)


结果如下:
{1, 2, 3}

定义一个空的集合:  my_set = set()

注意: my_set = {}     表示定义一个空字典,而不是集合

my_set = {}
print(type(my_set))
my_set=set()
print(type(my_set))


结果如下:
<class 'dict'>
<class 'set'>

2. 集合的常见操作  

2.1 > 向集合中添加元素(add, update):

  • add函数是将添加的元素作为一个元素处理
  • update是将添加的元素拆分,做为个体传入到集合中
my_set = set()
#add函数是将添加的元素作为一个元素处理
my_set.add("abcd123")
print(my_set)

my_set = set()
#update是将添加的元素拆分,做为个体传入到集合中
my_set.update("abcd123")
print(my_set)


结果如下:
{'abcd123'}
{'b', 'c', '1', '3', 'd', '2', 'a'}

2.2 > 删除集合中的元素(remove,pop,discard):

 remove ():删除集合中的具体的值,如果集合中没有这个值,则会报错

my_set={"name","age",12,3.14,True}
#删除集合中的具体的值
my_set.remove(12)
print(my_set)
#如果集合中没有这个值,则会报错
my_set.remove(111)
print(my_set)


结果如下:
{True, 3.14, 'age', 'name'}
Traceback (most recent call last):
  File "D:/python_code/St11/test/liebiao.py", line 6, in <module>
    my_set.remove(111)
KeyError: 111

pop() : 随机删除集合中的某个元素, 如果集合为空,则程序报错

my_set={"name","age",12,3.14,True,111}
#随机删除集合中的某个元素
my_set.pop()
print(my_set)

my_set1=set()
#如果集合为空,则会报错
my_set1.pop()
print(my_set1)


结果如下:
{3.14, 'name', 12, 111, 'age'}
Traceback (most recent call last):
  File "D:/python_code/St11/test/liebiao.py", line 7, in <module>
    my_set1.pop()
KeyError: 'pop from an empty set'

discard (): 如果元素存在,直接删除。 如果元素不存在,程序不会报错,不做任何操作

my_set={"name","age",12,3.14,True}
#删除集合中的具体的值
my_set.discard(12)
print(my_set)

my_set={"name","age",12,3.14,True}
#如果集合中没有这个值,则不做任何操作
my_set.discard(111)
print(my_set)


结果如下:
{True, 3.14, 'age', 'name'}
{True, 3.14, 'age', 12, 'name'}

3. 集合的其他操作

  • 集合的交集(&)
  • 集合的并集(|)
  • 集合的差集(-):在"—"前的集合,而不在"—"后的集合
  • 集合的对称差集(^):非两者公有的部分
my_set1={"name","age",12,3.14,True,666}
my_set2={"name","age",12,3.14,True,111,222}

#集合的交集
my_set=my_set1&my_set2
print(my_set)
#集合的并集
my_set=my_set1|my_set2
print(my_set)
#集合的差集,在第一个集合中,不在第二个集合中
my_set=my_set1-my_set2
print(my_set)
#集合的差集,在第二个集合中,不在第一个集合中
my_set=my_set2-my_set1
print(my_set)
#集合的对称差集,不是两个集合公有的部分
my_set=my_set1^my_set2
print(my_set)


结果如下:
{True, 'name', 3.14, 12, 'age'}
{True, 'name', 3.14, 12, 111, 666, 'age', 222}
{666}
{222, 111}
{666, 222, 111}

猜你喜欢

转载自blog.csdn.net/qq_38684504/article/details/85847039