集合的函数

  • add()
1
2
3
4
5
6
7
8
9
10
向集合中添加一个元素/数据
格式:集合.add(数据),返回值:None

fruits = {'apple','orange','pear'}
print(fruits)
#添加数据
fruits.add('banana')
print(fruits)

注意:操作直接修改原有集合。
  • pop()
1
2
3
4
5
6
7
8
9
10
随机删除集合中的一个元素/数据
格式:集合.pop(),返回值:随机删除的数据

it = {'php','java','lua','python','c','c++'}
print(it)
#删除数据
result = it.pop()
print(it,result)

注意:操作直接修改原有集合。
  • remove()
1
2
3
4
5
6
7
8
9
10
删除指定的数据,数据不存在会报错
格式:集合.remove(数据),返回值:None

it = {'php','java','lua','python','c','c++'}
print(it)
#删除指定数据
result = it.remove('javascript')
print(it,result)

注意:操作直接修改原有集合。
  • discard()
1
2
3
4
5
6
7
8
9
10
删除指定的数据,数据不存在不进行操作
格式:集合.discard(数据),返回值:None

it = {'php','java','lua','python','c','c++'}
print(it)
#删除指定数据
result = it.discard('javascript')
print(it,result)

注意:操作直接修改原有集合。
  • clear()
1
2
3
4
5
6
7
8
9
清空集合
格式:集合.clear(),返回值:None

drink = {'冰糖雪梨','橙子汁','西瓜汁','椰汁','草莓汁'}
print(drink,id(drink))
#清空操作
result = drink.clear()
print(drink,id(drink),result)
注意:操作直接修改原有集合。
  • copy()
1
2
3
4
5
6
7
8
9
10
复制集合
格式:集合.copy(),返回值:None

fruit = {'樱桃','水蜜桃','扁桃','油桃','猕猴桃'}
print(fruit,id(fruit))
#复制集合
newfruit = fruit.copy()
print(newfruit,id(newfruit))

注意:复制的集合和原集合内容一样,但是不是一个集合

集合运算函数

  • difference()
1
2
3
4
5
6
7
格式:集合1.difference(集合2),返回值:差集的集合

fruit1 = {'苹果','梨','橘子','柚子','西瓜','草莓'}
fruit2 = {'橙子','桃子','葡萄','提子','草莓','樱桃','橘子'}
#计算集合1相对于集合2的差集 (存在与集合1但是不存在于集合2的数据)
result = fruit1.difference(fruit2)
print(result)
  • difference_update()
1
2
3
4
5
6
7
8
格式:集合1.difference_update(集合2),返回值:None

fruit1 = {'苹果','梨','橘子','柚子','西瓜','草莓'}
fruit2 = {'橙子','桃子','葡萄','提子','草莓','樱桃','橘子'}
fruit1.difference_update(fruit2) #相当于 集合1变量 = 集合1 和集合2的差集
print(fruit1)

注意:所谓更新差集,就是计算差集之后将结果重新赋值给第一个集合的变量而已
  • intersection()
1
2
3
4
5
6
格式:集合1.intersection(集合2),返回值:交集的集合

fruit1 = {'苹果','梨','橘子','柚子','西瓜','草莓'}
fruit2 = {'橙子','桃子','葡萄','提子','草莓','樱桃','橘子'}
result = fruit1.intersection(fruit2)
print(result)
  • intersection_update()
1
2
3
4
5
6
7
8
格式:集合1.intersection_update(集合2),返回值:None

fruit1 = {'苹果','梨','橘子','柚子','西瓜','草莓'}
fruit2 = {'橙子','桃子','葡萄','提子','草莓','樱桃','橘子'}
fruit1.intersection_update(fruit2)
print(fruit1)

注意:更新交集,就是计算交集之后将结果重新赋值给第一个集合的变量
  • union()
1
2
3
4
5
6
格式:集合1.union(集合2),返回值:并集结果

fruit1 = {'苹果','梨','橘子','柚子','西瓜','草莓'}
fruit2 = {'橙子','桃子','葡萄','提子','草莓','樱桃','橘子'}
result = fruit1.union(fruit2)
print(result)
  • update()
1
2
3
4
5
6
7
8
格式:集合1.update(集合2),返回值:None

fruit1 = {'苹果','梨','橘子','柚子','西瓜','草莓'}
fruit2 = {'橙子','桃子','葡萄','提子','草莓','樱桃','橘子'}
fruit1.update(fruit2)
print(fruit1)

注意:更新并集,就是计算并集之后将结果重新赋值给第一个集合的变量
  • issuperset()检测是否是超集
1
2
3
4
5
6
格式:集合1.issuperset(集合2),返回值:布尔值

fruit = {'西瓜','椰子','香蕉','葡萄','芒果','猕猴桃'}
yellowfruit = {'香蕉','芒果'}
result = fruit.issuperset(yellowfruit)
print(result)
  • issubset()检测是否是子集
1
2
3
4
5
6
格式:集合1.issubset(集合2),返回值:布尔值

fruit = {'西瓜','椰子','香蕉','葡萄','芒果','猕猴桃'}
yellowfruit = {'香蕉','芒果'}
result = yellowfruit.issubset(fruit)
print(result)
  • isdisjoint()检测是否不相交的函数
1
2
3
4
5
6
7
8
格式:集合1.isdisjoint(集合2),返回值:布尔值

fruit1 = {'苹果','梨','橘子','柚子','西瓜','草莓'}
fruit2 = {'橙子','桃子','葡萄','提子','柚子','樱桃'}
result = fruit1.isdisjoint(fruit2)
print(result)

注意:集合不相交结果为True,集合相交,结果为False
  • symmetric_difference()对称差集
1
2
3
4
5
6
格式:集合1.symmetric_difference(集合2),返回值:对称差集的集合

fruit1 = {'苹果','梨','橘子','柚子','西瓜','草莓'}
fruit2 = {'橙子','桃子','葡萄','提子','柚子','樱桃'}
result = fruit1.symmetric_difference(fruit2)
print(result)
  • symmetric_difference_update()对称差集更新运算
1
2
3
4
5
6
7
8
格式:集合1.symmetric_difference_update(集合2),返回值:None

fruit1 = {'苹果','梨','橘子','柚子','西瓜','草莓'}
fruit2 = {'橙子','桃子','葡萄','提子','柚子','樱桃'}
fruit1.symmetric_difference_update(fruit2)
print(fruit1)

注意:计算对称差集的结果直接更新到集合1的变量当中

冰冻集合/固定集合

一旦创建就不可以进行修改的集合。一种数据类型。

创建冰冻集合

  • 空的冰冻集合
1
2
3
4
5
 变量 = frozenset()

myset = frozenset()
#打印类型和值
print(myset,type(myset))
  • 创建具有数据的冰冻集合
1
2
3
4
变量 = frozenset(容器数据)

myset = frozenset(['冰淇淋','老冰棍','奶油冰棍','小豆冰棍'])
print(myset,type(myset))

冰冻集合的作用

为集合的操作提供一个不可以改变的对照集合。冰冻集合除了不能修改之外,其余和集合一样!