开发者学堂课程【Python入门 2020年版:集合里运算符的使用】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/639/detail/10322
集合里运算符的使用
内容介绍:
一、引言
二、集合的减法运算
三、集合的与运算
四、集合的或运算
五、集合的亦或运算
六、结语
一、引言
已知若想要知道所有集合中的人数,需要通过 first+second+third,加完之后输入total=set 命令,这个时候就具有了去重功能。其实除了这种算法之外,我们还有一些其他的算法。
现在我们不使用元组,而是直接使用set进行运算,即 first、second、third 全部使用{},这是因为set的功能更为方便,set支持很多的算数运算符。
first={'李白'
,
'白居易'
,
'李清照'
,
'杜甫'
,'
王昌龄'
,
'王维'
,
'孟浩然'
,
'王安石'
}
second ={'李商隐'
,
'杜甫'
,
'李白'
,
"白居易'
,
'岑参'
,
'王昌龄'
}
third ={'李清照','刘禹锡','岑参'
,
'王昌龄','苏轼','王维','李白'
}
需要注意的是,虽然 set 可以支持多种运算符,但是它并不支持加法运算,例如输入并运行print(first +second)
发现会报错,因此加法是不支持的。
二、集合的减法运算
set 中可以用减法
例如令first-second,代码为print(first -second)
,表示求A和B的差集
运行后发现结果是{'孟浩然','王维','王安石','李清照}。减法就是A减去B,即得到就是A和B的差集。观察发现A集合中有李白,B中也有李白;A集合中有白居易,B集合中也有白居易;A集合中有孟浩然,而B集合中没有,那孟浩然就是一个差集;同理,A集合中有王维,B集合中没有,则王维也是一个差集;A集合中有王安石,B集合中没有,王安石也是一个差集;A集合中有李清照,B集合中没有,则李清照也是被减去的数据,也是一个差集。
三、集合的与运算
set 中可以进行与运算
例如令firs&second
,代码为print(first&second)
,表示求A和B的交集
结果显示为{'王昌龄','李白','杜甫','白居易'},求得结果为A和B的交集。
图示两个、者之间有相交的地方,而相交的地方就是交集,表示两者之间都有的,包括王昌龄、李白、杜甫还有白居易。除了这个之外,A还有自己单独存在的,包括孟浩然、王维、王安石还有李清照,B中单独存在李商隐、岑参。刚才第一个我们所讲的用 first-second 得到的是 A(first)中单独存在的一部分,若用second-first,得到的结果是就是 B(second)中单独存在的李商隐、岑参。-运算符读取的是两者的差集;&运算符得到的是两者都有的,求得交集。
四、集合的或运算
set 中可以进行或运算
例如令firs|second
代码为print ( first|second )
,表示求А和B的并集
运行结果为{
'孟浩然','王安石','王昌龄','王维'
,
'李白','李商隐','岑参','杜甫','李清照','白居易'
}
,求得结果为A和B的并集。
五、集合的亦或运算
set 中可以进行亦或运算
例如令firs^second
,代码为print ( first^second )
,表示求А和B除交集之外的结果,也就是A和B差集的并集
运行结果为{
'李清照','王安石','王维','岑参','李商隐','孟浩然'
}
,求得的是除了交集之外的所有数据,即差集的并集。
六、结语
集合的运算符包括减法、与、或、亦或,可以解决我们之前所讲的其他题目,大家可以自行解决,在此不进行讲解了,大家可以依照答案进行比对。