一、Set (集合)
集合(set)是由一个或数个形态各异的大小整体组成,构成集合的事物或对象称作元素或是成员
基本功能是进行成员关系测试和删除重复元素
集合(set)是一个无序不重复元素序列
可以使用大括号{ } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { } ,因为 { } 是用来创建一个空字典
创建格式:
var1={value01,value02,...}
或者
set(value)
举例:
basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
print(basket) #去重功能
print('orange' in basket) #判断元素是否在集合内
print('crabgrass' in basket)
运行结果:
{'apple', 'pear', 'banana', 'orange'}
True
False
下面展示两个集合间的运算
a = set('abracadabra')
b=set('alacazam')
print(a)
print(a-b) #集合a中包含元素
print(a|b) #集合a或b中包含的所有元素
print(a&b) #集合a和集合b都包含的元素
print(a^b) #不同时包含于a和b的元素
同样集合支持集合推导式(Set comprehension)
a={x for x in 'abracadabra' if x not in 'abc'}
print(a)
运行结果:{'r', 'd'}
二、集合的基本操作
1、添加元素
语法格式: s.add(x)
将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作。
aa=set(("taobao","tianmiao","jingdong"))
aa.add("weipinhui")
print(aa)
还有一个方法,也可以添加元素,且参数可以列表,元组,字典等,语法格式如下:
s.update(x)
x可以有多个,用逗号分开
aa=set(("taobao","tianmiao","jingdong"))
aa.update({1,3})
print(aa)
运行结果:
{'taobao', 'jingdong', 'tianmiao', 1, 3}
2、移除元素
语法格式如下:
s.remove(x)
将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误
举例:
aa=set(("taobao","tianmiao","jingdong"))
aa.remove("taobao")
print(aa)
此外还有一个方法也是移除集合中的元素,且如果元素不存在,不会发生错误。格式如下:
s.discard(x)
举例:
aa=set(("taobao","tianmiao","jingdong"))
aa.discard("mogujie") #不存在不会发生错误
print(aa)
设置随机删除集合中的一个元素,语法格式如下:
s.pop()
举例:
aa=set(("taobao","tianmiao","jingdong"))
x=aa.pop()
print(x)
运行结果:
jingdong
多次执行测试结果都不一样
然而在交互模式,pop是删除集合的第一个元素(排序后的集合的第一个元素)
举例:
aa=set(("taobao","tianmiao","jingdong"))
print(aa.pop())
print(aa)
运行结果:
jingdong
{'tianmiao', 'taobao'}
3、计算集合元素个数
语法格式如下:
len(s)
计算集合s元素个数
aa=set(("taobao","tianmiao","jingdong"))
print(len(aa))
运行结果:3
4、清空集合
语法格式如下:
s.clear()
清空集合s
aa=set(("taobao","tianmiao","jingdong"))
aa.clear()
print(aa)
运行结果:
set()
5、判断元素是否在集合中存在
语法格式如下:
x in s
判断元素x是否在集合s中,存在则返回True,不存在返回False
aa=set(("taobao","tianmiao","jingdong"))
print("hahah" in aa)
print("taobao" in aa)
运行结果:
False
6、集合内置方法完整列表
方法 | 描述 |
add() | 为集合添加元素 |
clear() | 移除集合中的所有元素 |
copy() | 拷贝一个集合 |
difference() | 返回多个集合的差集 |
Truedifference_update() | 移除集合中的元素,该元素在指定的集合也存在。 |
discard() | 删除集合中指定的元素 |
intersection() | 返回集合的交集 |
intersection_update() | 删除集合中的元素,该元素在指定的集合中不存在。 |
isdisjoint() | 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。 |
issubset() | 判断指定集合是否为该方法参数集合的子集。 |
issuperset() | 判断该方法的参数集合是否为指定集合的子集 |
pop() | 随机移除元素 |
remove() | 移除指定元素 |
symmetric_difference() | 返回两个集合中不重复的元素集合。 |
symmetric_difference_update() | 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。 |
union() | 返回两个集合的并集 |
update() | 给集合添加元素 |