目录

1、什么是Set集合类型

2、set集合的定义与运用

3、集合常用的方法

(1)add方法向集合内添加元素

(2)remove方法移除指定元素

(3)pop方法随机取出一个元素

(4)clear方法清空集合

(5)defference方法取集合2在集合1中的差值

(6)difference_update方法,消除集合1中与集合2共有的元素

(7)union方法合并两个集合

(8)len内置方法统计集合元素个数

(9)in关键字判断元素是否在集合内存在

4、集合的循环遍历

5、总结


1、什么是Set集合类型


        Set集合类型在各个编程语言中都有存在,作用基本是一致,在Python中Set是一个容器类型,可以一个变量存储多个元素数据,他的主要特点是存储的元素不能重复,并且他的元素是无序的,不能通过下标进行获取,元素位置也是随机的。

2、set集合的定义与运用


        set是以set1 = {元素1,元素2,元素3,元素n.....}的形式书写

关于定义我们来看下面这个案例(定义了一个有元素的集合和一个空集合)

  • 以下集合中,定义了两个相同的元素“杰尼龟”,在打印输出集合时,两个杰尼龟就变成了一个
#1、定义集合
set1 = {"妙蛙种子","杰尼龟","小火龙","皮卡丘","杰尼龟"}
print(set1) 

#输出:{'小火龙', '杰尼龟', '皮卡丘', '妙蛙种子'},将后一个重复的元素给移除了



#2、定义一个空集合
#这是定义了一个空集合
val = set()

3、集合常用的方法


 下面是set中的一些常用方法和示例,可以参考学习下。

方法作用
set1.add("元素")向集合内添加元素
set1.remove("元素")移除集合内指定元素
set1.pop("元素")随机从集合内取出一个元素,取出的元素会在集合内剔除
set1.clear()清空集合内的所有元素
set1.defference(集合2)取出集合2在集合1中的差值(数学上的补集)
set1.difference_update(集合2)删除集合1中集合1与集合2共有的元素(只操作集合1,不影响集合2)
set1.union(集合2)将集合1与集合2合并,生成新集合,相同元素只保留一个
内置方法len(集合)统计集合中元素的个数
内置in关键字值 in 集合  判断值是否在集合中存在,返回布尔值

(1)add方法向集合内添加元素

  • 我们这里向集合内添加了集合内已有的元素 “小火龙”,最后输出会发现,只显示了一个。
  • 因为添加集合内已有的元素,则集合不会去存放他,保证了数据的唯一性。
#2、add方法给集合中添加元素

set1 = {"妙蛙种子","杰尼龟","小火龙","皮卡丘","杰尼龟"}

#添加
set1.add("菊草叶")
set1.add("小火龙")
print(set1) 

#{'小火龙', '妙蛙种子', '杰尼龟', '皮卡丘', '菊草叶'},添加的重复值小火龙已被移除

(2)remove方法移除指定元素

  • 这个有点意思哈,因为集合元素的唯一性,所以移除的元素就真的消失了,移除时也不用考虑是否还有其他同名的元素了。
  • 以下案例移除了集合内的元素“杰尼龟”,打印时元素“杰尼龟”将不再显示。
#定义元素
set1 = {"妙蛙种子","杰尼龟","小火龙","皮卡丘","杰尼龟"}

#3、remove方法移除元素
set1.remove("杰尼龟")

print(set1) 
#输出:{'皮卡丘', '小火龙', '妙蛙种子', '菊草叶'}

(3)pop方法随机取出一个元素

  • 此方法会从集合中随机取出一个元素,取出后元素将在集合中移除。
  • 取出的元素将作为返回值的形式返回,可以使用变量接收做后续处理。
#定义一个集合并添加初始值
set1 = {"妙蛙种子","杰尼龟","小火龙","皮卡丘","杰尼龟"}


#pop方法随机取出一个元素,取出后会将取出的元素从原集合中剔除
val1 = set1.pop()

print(val1) 
#这是集合里面任意一个值,例如杰尼龟(每次结果都是随机值)

#输出原集合
print(set1) #{'小火龙', '皮卡丘', '妙蛙种子'}

#这里发现原集合中,元素“杰尼龟”消失不见了,正是被pop方法随机取出,在集合中剔除了。
#而取出的元素“杰尼龟”则被存储在了val1变量中,可以用来做后续操作

(4)clear方法清空集合


  • clear方法也是咱们的老朋友了,他的作用与list列表、str字符串的clear功能一样,清空内部的所有元素,这里是清空集合内所有值。
#5、clear方法清空集合中的元素
set1 = {"小火龙","阿尔宙斯","呆呆兽"}

#清空set1集合中所有值
set1.clear()

print(set1) 
#输出:set(),就是空的意思

(5)defference方法取集合2在集合1中的差值

  • 这个得说一下,这个方法需要两个集合,作用是取出集合2在集合1中的差值。
  • 所谓差值就是集合2没有的元素,但集合1有的,就把这个只有集合1中有的元素给取出来。
  • 并且这里取出的差值是不修改原集合,他会生成一个新集合,可用变量接收。
  • 如果你还是没懂,那咱们拿出个案例来看下,如下:
#先定义了两个集合
set2 = {1, 2, 3, 4, 5, 6}
set3 = {1, 2, 3}

#下面我要取差值
val2 = set2.difference(set3)

print(val2) 
#输出:{4, 5, 6}

#为啥最后结果是{4, 5, 6}呢?
#因为4,5,6这三个元素你看在set3中没有吧,但是呢,在set2中却有
#意思就是set2集合比set3集合多了三个元素{4, 5, 6},那么取值就是取的set2比set3多的元素
#就非常像当年数学中集合中的 “补集”

#为啥最后结果是{4, 5, 6}呢?
#因为4,5,6这三个元素你看在set3中没有吧,但是呢,在set2中却有
#意思就是set2集合比set3集合多了三个元素{4, 5, 6},那么取值就是取的set2比set3多的元素
#就非常像当年数学中集合中的 “补集”

看到这里你如果还有些不懂,那就再看个简单的例子,如下:

小明 手里有三个水果   {苹果,草莓,西瓜}

#

小红 手里只有一个水果   {草莓}

#

#

差值 = 小明.difference(小红)

#

print(差值)    #输出结果为:{苹果,西瓜}

#

#最终得出:小明和小红手中水果比较,小明比小红多了苹果和西瓜两种水果。

#所以输出结果就是小明比小红多出的水果值

#

如果到这里你还有有些不懂,小政同学也是无可奈何了,咱还不是专业的讲师,哈哈。

既然这样,那就来吧,321上链接!

菜鸟教程-Python集合学习https://www.runoob.com/python3/ref-set-difference.html

来这个链接瞧一瞧塞~

(6)difference_update方法,消除集合1中与集合2共有的元素

  • 这方法和上面difference有区别,上面是取值,这个是删值。

  • 使用集合1.difference_update(集合2)后,会删除集合1中集合1与集合2都有的元素。

  • 最后集合1只留下集合2没有的值,集合2无需任何修改。

#依旧准备两个集合
set2 = {"苹果","草莓","西瓜"}
set3 = {"草莓"}

#这里可以看到,set2和set3中都有元素“草莓”


#difference_update方法,消除集合1中与集合2共有的元素(只删除集合1中的元素,集合2不变)

#开始删set2中的部分值
set2.difference_update(set3)

#输出两个集合各自的结果
print(set2)     #{'苹果', '西瓜'}
print(set3)     #{'草莓'}

#这里可以看到,集合set2中元素 “草莓” 消失了,而set3中“草莓”却还在。
#这是因为difference_update方法看到两个集合都有草莓,所以他将set2中草莓删除了。
#这个行为只删除了set2,而set3程序根本没有动他。
#所有最后结果就是删除了set2中set2与set3相同的元素“草莓”。

#这里可以看到,集合set2中元素 “草莓” 消失了,而set3中“草莓”却还在。
#这是因为difference_update方法看到两个集合都有草莓,所以他将set2中草莓删除了。
#这个行为只删除了set2,而set3程序根本没有动他。
#所有最后结果就是删除了set2中set2与set3相同的元素“草莓”。

别急,我们还有链接!

菜鸟教程-Python集合学习https://www.runoob.com/python3/ref-set-difference_update.html

(7)union方法合并两个集合

  • 这边两个集合合并之后因为集合的唯一性,所以相同元素也只会留一个。
#union方法合并两个集合,合并后去除重复值
set2 = {2,4,5,7}
set3 = {1,2,3,4}
val3 = set2.union(set3)

print(val3) 
#输出:{1,2,3,4,5,7}
#这里合并后,两个列表都有的元素2,4最后输出后只剩一个了。

(8)len内置方法统计集合元素个数

  • 这个也是很常用的,是Python的内置函数,作用就是统计元素个数、长度。
#定义集合
set1 = {"星期一","星期二","星期三","星期四","星期五","星期六"}


#len方法输出集合元素个数
print(len(set1))

#输出:6 元素个数为6

(9)in关键字判断元素是否在集合内存在

  • in关键字是Python中内置的一个语法关键字,作用是判断前者是否在后者内出现。
  • in关键字的结果是一个布尔值。
  • 如果值存在于后者中,返回True,不存在则返回False。
#定义集合
set1 = {"星期一","星期二","星期三","星期四","星期五","星期六"}

#我想知道星期一是否在上面set1集合中存在?
print("星期一" in set1)

#输出:True

#想知道星期日是否在上面set1集合中存在?
print("星期日" in set1)

#输出:False

4、集合的循环遍历


        set集合由于他没有下标,且元素是无序存储的,所以我们遍历时不能通过while进行遍历,只能通过for来实现集合元素的遍历。


#定义集合
set1 = {"星期一","星期二","星期三","星期四","星期五","星期六"}


#for循环遍历集合
#因为集合不支持下标获取值,所以不能用while去取值
for i in set1:
    print(i)

"""
输出结果如下:
星期一
星期二
星期三
星期四
星期五
星期六
"""

5、总结


        set列表的特点:元素无序、无下标、可存储任意类型、可修改、不可重复。

        他的使用场景:对于一些只需要出现一个的,或者做随机抽奖、等不需要数据重复的场景。

来CSDN与小政同学一起学习吧,各位给点点赞,更多知识敬请期待!

我的博客:欢迎来到小政同学的博客

更多推荐