python教程:set的使用教程

集合是Python的一种数据类型,集合是一个可变容器。常用于列表的去重。

什么是集合

  • 集合是一个可变容器
  • 集合中的数据对象都是唯一的(不可重复)
  • 集合是无序的存储结构
  • 集合是可迭代对象
  • 集合内的元素是不可变的

创建集合

使用{}创建集合,集合元素使用,隔开

s = {1, 2}

注意:使用{}不可以创建空集合,因为创建出来的是一个字典。

使用构造函数创建集合

s = set()

集合的运算

交集- &

s1 = {1, 2, 3}
s2 = {2, 3, 4}
print(s1 & s2)

并集- |

s1 = {1, 2, 3}
s2 = {2, 3, 4}
print(s1 | s2)

补集- -

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
s1 = {1, 2, 3}
s2 = {2, 3, 4}
print(s1 - s2) 
# 生成属于s1但不属于s2的所有元素

对称补集- ^

s1 = {1, 2, 3}
s2 = {2, 3, 4}
print(s1 - s2) 

还有一些基本的运算,可以查看Python运算符进行学习

集合的内建函数

  • len() 集合内元素的个数
  • max() 最大值
  • min() 最小值
  • sum() 和
s = {11, 22, 44, 6, 0, 10}
print(len(s))
print(max(s))
print(min(s))
print(sum(s))

any() 任何一个元素为真,返回真

s = {11, 0}
boolean = any(s)
print(boolean)

all() 所有元素为真,返回真

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
s = {11, 22, 33, "string"}
boolean = all(s)
print(boolean)

集合的方法

add() 添加元素,元素存在,则不执行

s = {11, 22, 33}
s.add(44)
print(s)

clear() 清空集合所有的元素

s = {11, 22, 33}
s.clear()
print(s)

remove() 移除指定的元素

s = {11, 22, 33, 44, 55}
s.remove(11)
print(s)

pop() 随机删除一个元素

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
s = {11, 22, 33, 44, 55}
s.pop()
print(s)

difference() 返回两个集合的补集

s1 = {11, 22, 33, 44}
s2 = {55, 66, 77, 22, 44, 88}
print(s1.difference(s2))

difference_update() 移除两个集合中都存在的元素

s1 = {11, 22, 33, 44}
s2 = {55, 66, 77, 22, 44, 88}
s1.difference_update(s2)
print(s1)
print(s2)

isdisjoint() 判断两个集合中是否有相同的元素,返回一个布尔值,没有返回True,否则就是False

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
s1 = {11, 22, 33, 44}
s2 = {55, 66, 77, 22, 44, 88}
boolean = s1.isdisjoint(s2)
print(boolean)

以上只介绍部分常用方法,等待你的补充

集合的遍历

s = {11, 22, 33, 44, 55}
for i in s:
    print(i)

集合推导式

集合推导式允许使用可迭代对象生成集合的表达式

语法:

{表达式 for 变量 in 可迭代对象 if 条件}

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
l = [1, 2, 3, 4, 5, 6]
s = {x for x in l if x %2 == 0}
print(s)

集合的去重

list1 = [11, 22, 33, 11, 22, 11, 44, 11]
print(set(list1))

固定集合

不可变的容器,无序,元素唯一
创建固定集合- 使用构造函数(frozenset)

fs = frozenset()
fs_num = frozenset([1, 2, 3, 4])

固定集合的运算

  • 交集,并集, 补集,对称补集
  • in / not in
  • 其他运算符

固定集合的方法

  • 取出修改集合的方法,其余便是固定集合的方法

由于固定集合在实际开发中,用到的不是很多,所以没有展开详细教程。

猜你喜欢

转载自blog.csdn.net/sinat_38682860/article/details/108223835