Python——集合Set的一些内容

1、集合可以去重

>>>l = [1, 1, 2, 2, 3]
>>>set(l)
>>>{
    
    1, 2, 3}
>>>list(set(l))
>>>[1, 2, 3]

2、集合的中缀运算符(以集合A和B为例)

  • | 运算符 ,A | B,返回A与B的合集,
  • &运算符,A & B,返回A与B的交集
  • -运算符,A - B, 返回A与B的差集
  • ^运算符,A ^ B,返回A与B的对称差集(A,B中不属于A交B的元素集合)
    各种运算符都有相应原地更新操作,如|=、&=、-=、^=

3、集合字面量
除了空集,集合的字面量可以写成{…}的形式,如:

>>>s = {
    
    1, 2, 3}
>>>type(s)
<class 'set'>

但若想创建一个空集,则必须用set()方法,如果写成{},则创建的是一个空字典。

s = set()

4、集合的比较运算符

e in s     #判断e是否属于s
s <= z     #判断s是否为z的子集
s <  z     #判断s是否为z的真子集
s >= z     #判断s是否为z的父集
s >  z     #判断s是否为z的真父集

5、集合set方法

s.add(e)        #把元素e添加到s中
s.clear()       #移除s所有元素
s.copy()		#对s浅复制
s.discard(e)	#如果s中有e则把它移除
s.remove(e)		#移除e,若集合没有则抛出KeyError异常
s.pop()			#随机移除一个元素,并返回其值
s.__len__()		#len(s)
s.__iter__()	#返回s的迭代器

6、集合的实现及导致的结果
集合的实现依赖于散列表,因此有一些特点如下:

  • 集合里的元素必须是可散列的
  • 集合很消耗内存(散列表的特性,空间换时间)
  • 可以很高效的判断元素是否存在于某个集合
  • 元素的次序取决于被添加到集合里的次序
  • 往集合里添加元素,可能会改变集合里已有元素的次序

猜你喜欢

转载自blog.csdn.net/ewfwewef/article/details/108762019