Python—集合(详细讲解)

  • Post author:
  • Post category:python




一、集合简介

  • 集合的表现形式:set
  • 集合与列表很相似,区别如下:

    。 集合中的元素必须为不可变对象

    。 集合中不能出现重复的元素,即若有重复的元素则不会出现

    。 集合中的元素是无序的



二、集合的一些操作



2.1 set()

  • set() 函数可以用来创建集合
my_set = set({})
print(my_set, type(my_set))
#结果为 set() <class 'set'>
  • set() 函数可以将序列和字典转化为集合



    注意

    :若通过 set() 将字典转化为集合,转化后的集合只包含字典中的键,不会包含值
set1 = set([1, 2, 3])
set2 = set('hello')
set3 = set({'姓名': 'zqc', '性别': '女'})
print(set1, type(set1))
print(set2, type(set2))
print(set3, type(set3))
#结果为 
{1, 2, 3} <class 'set'>
{'h', 'o', 'l', 'e'} <class 'set'>
{'性别', '姓名'} <class 'set'>



2.2 通过索引取值

  • 因为集合本身是无序的,所以不能直接通过索引取值
  • 先将集合转化为列表,转化后的列表可以通过索取值
my_set = set([1, 2, 3])
print(list(my_set)[1])
#结果为 2



3.2 in、not in

  • 判断指定元素是否在集合中
  • 返回布尔类型



3.3 len()

  • len() 用来获取集合长度,即集合中有几个元素
  • 返回一个 int 类型



3.4 add()

  • add() 用来向集合中添加一个元素
my_set = {11, 22, 33}
my_set.add(44)
print(my_set)
#结果为 {33, 11, 44, 22}



3.5 update()

  • update() 用来将一个集合中的元素添加到另一个集合中
my_set = {11, 22, 33}
your_set = {44}
my_set.update(your_set)
print(my_set)
#结果为 {33, 11, 44, 22}



3.6 pop()

  • pop() 用来随机删除集合中的一个元素
  • pop() 有返回值
my_set = {11, 22, 33}
d = my_set.pop()
print(d)
print(my_set)
#结果为 
33
{11, 22}



3.7 remove()

  • remove() 用来删除一个指定的元素
my_set = {11, 22, 33}
my_set.remove(22)
print(my_set)
#结果为 {33, 11}



3.8 clear()

  • clear() 用来清空集合
my_set = {11, 22, 33}
my_set.clear()
print(my_set)
#结果为 set()



三、集合的运算



3.1 交集 &

  • 返回一个集合
my_set = {1, 2, 3, 4, 5}
your_set = {3, 4, 5, 6, 7}
print(my_set & your_set)
#结果为 {3, 4, 5}



3.2 并集 |

  • 返回一个集合
my_set = {1, 2, 3, 4, 5}
your_set = {3, 4, 5, 6, 7}
print(my_set | your_set)
#结果为 {1, 2, 3, 4, 5, 6, 7}



3.3 差集 –

  • 返回的是一个集合
my_set = {1, 2, 3, 4, 5}
your_set = {3, 4, 5, 6, 7}
print(my_set - your_set)
print(your_set - my_set)
#结果为
{1, 2}
{6, 7}



3.4 异或 ^

  • 返回的是一个集合
  • 异或为不相交的部分
my_set = {1, 2, 3, 4, 5}
your_set = {3, 4, 5, 6, 7}
print(my_set ^ your_set)
#结果为 {1, 2, 6, 7}



3.5 集合间的关系 ≤、<、≥、>

  • 判断一个集合是否是另一个集合的子集:<=
  • 判断一个集合是否是另一个集合的真子集:<
  • 判断一个集合是否是另一个集合的超集:>=
  • 判断一个集合是否是另一个集合的真超集:>
  • 返回布尔类型



版权声明:本文为weixin_46392056原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。