python中集合的操作
⑴ python精讲:Python中集合的交集并集差集和对称差集运算方法详解
欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《Python中集合的交集、并集、差集和对称差集运算方法详解》。主要讲的是集合运算的相关的概念,及运算方法,包括:集合的交集、集合的并集、集合的差集、集合的对称差集、集合的交集运算方法、集合的并集运算方法、集合的差集运算方法、集合的对称差集运算方法。
在Python中,集合最常用的操作就是进行交集、并集、差集和对称差集的运算。
要想学习集合的交集、并集、差集和对称差集运算方法,首先我们来了解这些名词的含义:
设A、B两个集合,由所有属于集合A且属于集合B的元素所组成的集合,叫做集合A与集合B的交集。在Python中,进行交集运算时使用“&”符号。
给定两个集合A、B,把他们所有的元素合并在一起组成的集合,叫做集合A与集合B的并集。在Python中,进行并集运算时使用“|”符号。
设A,B是两个集合,则所有属于A且不属于B的元素构成的集合,叫做集合A与集合B的差集。在Python中,进行差集运算时使用“-”符号。
对称差集也称为对称差分或者补集,设A,B是两个集合,所有不相同的集合,叫做集合A与集合B的对称差集(对称差分或者补集)。在Python中,进行对称差集运算时使用“^”符号。
上面都是概念性的描述,下面站长在线来举实际的场景来对交集、并集、差集和对称差集运算方法进行深入浅出的解读。
场景模拟:某高中三年级,文科班高考的科目是语文、数学、英语、政治、 历史 和地理。理科班高考的科目是语文、数学、英语、物理、化学和生物。
设定集合A为文科班高考的科目,集合B为理科班高考的科目。
A = {'语文','数学','英语','政治',' 历史 ','地理'}
B = {'语文','数学','英语','物理','化学','生物'}
我们使用集合的交集运算的时候可以采用两种方式,一种是使用“&”运算符进行操作,另一种是使用 intersection() 方法来实现。
运行结果:
运行结果:
同理集合B和集合A的交集也是一样。我这里就不重复了,自己去体验一下。
集合的并集运算也有两种方式,一种是使用“|”运算符进行操作,另一种是使用union()方法来实现。
运行结果如下:
运行结果为:
同理集合B和集合A的并集也是一样。自己去体验一下吧!
集合的差集运算也有两种方式,一种是使用“-”运算符进行操作,另一种是使用difference()方法来实现。
运行结果为:
上面是集合A和集合B的差集,但是集合B和集合A的差集就不是一样的了哦!
运行结果为:
从上面可以看出,集合A和集合B的差集 与 集合B和集合A的差集是不一样的,(A - B)是A中存在的部分,(B - A)是B中存在的部分。
运行结果:
同理,使用difference()方法进行集合B和集合A的差集也是不同的
运行结果:
集合的差集运算也有两种方式,一种是使用“^”运算符进行操作,另一种是使用symmetric_difference()方法来实现。
运行结果为:
运行结果为:
同样的,集合B与集合A的对称差集也是一样,自己去体验一下。
我们对集合的交集、并集、差集和对称差集运算方法全部详细的讲解了一遍,通过运行结果,我们得出结论:
集合中进行交集、并集、对称差集进行运算的时候,集合A与集合B,位置替换的时候,结果相同。
集合中进行差集运算的时候,集合A与集合B,位置替换的时候,结果不同,为前面那个集合独立存在的部分。
到此为止,本节课的内容《Python中集合的交集、并集、差集和对称差集运算方法详解》就完全讲完了,主要讲的集合运算的相关的概念,及运算方法,包括:集合的交集、集合的并集、集合的差集、集合的对称差集、集合的交集运算方法、集合的并集运算方法、集合的差集运算方法、集合的对称差集运算方法。
⑵ Python基础实战之集合元素的添加和删除
集合元素的添加操作有两种方法:
1、调用add()方法,一次添加一个元素
2、调用update()方法,至少添加一个元素
------------------------------
s={10,20,40,80}
s.add(30) #一次添加一个元素
print(s) #{10,30,20,40,80}
s.updae({200,300,400}) #一次至少添加一个元素
print(s) #{200,10,300,20,400,30,80,40}
s.update([800,900]) #可以添加列表
s.update((45,55)) #可以添加元组
print(s) #{200,5510,45,300,800,20,900,400,30,80,40}
------------------------------
集合元素的删除操作
1、调用remove()方法,一次删除一个指定元素,如果指定的元素不存在抛出KeyError
2、调用discard()方法,一次删除一个指定元素,如果指定的元素不存在不抛异常
3、调用pop()方法,一次只删除一个任意元素
4、调用clear()方法,清空集合
------------------------------
s.remove(200) #一次删除一个指定元素,如果指定的元素不存在抛出KeyError
print(s) #{55,10,45,300,800,20,900,400,30,80,40}
s.discard(900) #一次删除一个指定元素,如果指定的元素不存在不抛异常
print(s) #{55,10,45,300,800,20,400,30,80,40}
s.pop() #删除谁不知道,任意一个元素
print(s) #{55,10,45,800,20,400,30,80,40}
s.clear() #清空集合中的所有元素
print(s) #set()
⑶ python集合的使用怎么样的
Python set 集合最常用的操作是向集合中添加、删除元素,以及集合之间做交集、并集、差集等运算。
向set集合中添加元素
set 集合中添加元素,可以使用 set 类型提供的 add() 方法实现,该方法的语法格式为:
1
setname.add(element)
其中,setname 表示要添加元素的集合,element 表示要添加的元素内容。
需要注意的是,使用 add() 方法添加的元素,只能是数字、字符串、元组或者布尔类型(True 和 False)值,不能添加列表、字典、集合这类可变的数据,否则 Python 解释器会报 TypeError 错误。例如:
1
2
3
4
5
a = {1,2,3}
a.add((1,2))
print(a)
a.add([1,2])
print(a)
运行结果为:
1
2
3
4
5
{(1, 2), 1, 2, 3}
Traceback (most recent call last):
File "C:\Users\mengma\Desktop\1.py", line 4, in
a.add([1,2])
TypeError: unhashable type: 'list'
从set集合中删除元素
删除现有 set 集合中的指定元素,可以使用 remove() 方法,该方法的语法格式如下:
1
setname.remove(element)
使用此方法删除集合中元素,需要注意的是,如果被删除元素本就不包含在集合中,则此方法会抛出 KeyError 错误,例如:
1
2
3
4
5
a = {1,2,3}
a.remove(1)
print(a)
a.remove(1)
print(a)
运行结果为:
1
2
3
4
5
{2, 3}
Traceback (most recent call last):
File "C:\Users\mengma\Desktop\1.py", line 4, in
a.remove(1)
KeyError: 1
⑷ python数据类型(集合)
1.集合(set)是一个无序不重复元素的序列(意思是有重复的会自动删除,每次打印元素的位置不一定)
2.基本功能是进行成员关系测试和删除重复元素
3.可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典
4.因为set存储的是无序集合,所以我们没法通过索引来访问。访问 set中的某个元素实际上就是判断一个元素是否在set中。
1.创建集合
s=set()#创建一个空集合
s1={1,2,3,'a','python'}
2.删除重复的元素
集合是一个无序不重复元素的序列(意思是有重复的会自动删除,每次打印元素的位置不一定)
3.成员关系测试(检测某个成员是否在集合中)
案例:从终端输入5位数,以空格隔开,把这5位数存入列表中,剔除重复的数据,打印出来
#提示,列表转集合,集合转列表
a=input("请输入5位数字:")
mylist=a.split()
print(mylist)
b=set(mylist)
c=list(b)
print(c)
4.集合常用操作
1.添加元素
2.删除元素
3.删除整个集合
4.获取集合的长度
5.不支持改元素
集合操作-添加元素
格式:
集合.add(元素)
格式:
集合.update(元素)
区别:
add不能添加列表,update可以
update是将字符串中的拆分成字符进行追加
add,是当做整体追加在集合中
#案例:从终端输入一个数字就加入集合中,然后打印,又输入一个数字,然后打印,直到输入-1,退出输入
#然后打印最终的集合
ms=set()
while 1:
a=int(input("请输入一个数字:"))
if a==-1:
break
ms.add(a)
print(ms)
print(ms)
#案例:从终端输入一个字符串就加入集合中,然后打印,又输入一个字符串,然后打印,直到输入q,退出输入
#然后打印最终的集合,字符串要分开存储,如输入hello,存储的列表是{'h','e','l','0'}
ms=set()
while 1:
a=input("请输入一个字符串:")
if a=='q':
break
ms.update(a)
print(ms)
print(ms)
集合操作-删除元素及删除整个集合
格式:
集合.remove(元素) # 元素如果不存在会引发KeyError
集合.discard(元素) # 元素如果不存在不发生任何事
集合.pop() # 集合元素是字符串类型时删除随机元素。 集合元素是其他数据类型时,删除左边第一个元素
del 集合名 #删除整个集合
#案例:有集合{1,2,3,'hello','world'},删除全部字符串,然后最左边第一个元素
a={1,2,3,'hello','world'}
a.discard("hello")
a.discard("world")
a.pop()
print(a)
集合操作-获取集合的长度
格式:
len(集合名)
#案例:有集合{1,2,3,4,'hello','a'},保留1个元素,其他的删除,假如元素个数不确定
s={1,2,3,4,'hello','a'}
for i in range(len(s)-1):
s.pop()
print(s)
集合的集运算
集合的交集,并集,差集,对称差集的运算
{1,2,3,4}交集{4,5,6,7} -->4 交集(&)
{1,2,3,4}并集{4,5,6,7} ->1,2,3,4,5,6,7 并集(|)
{1,2,3,4}差集{4,5,6,7} ->1,2,3 差集(-)
{1,2,3,4}对称差集{4,5,6,7}->1,2,3,5,6,7 4同时出现在两个集合中,不选它 对称差集(^)
#案例:使用花括号和set创建各一个集合,然后对集合进行交、并、差、对称差运算
s={1,2,3,4,5,6}
s1=set([6,7,8,9,10])
print(s&s1)
print(s|s1)
print(s-s1)
print(s^s1)