集合类型的内置方法
- 1.用途
用于关系运算的集合体,集合内的元素无序且不可以重复,因此集合可以去重,但是去重之后会打乱元素原来的顺序
- 2.定义
{}内用逗号分隔每个元素,每个元素必须是不可变类型,定义空集合用set()
s = {1, 2, 1, 'a'} # s = set({1,2,'a'})
print(s) #{1,2,'a'}
- 3.常用操作和内置方法
1.长度len
2.成员运算 in 和not in
3.并集:两个集合合并起来并去除重复项重,用| 或 union ()
pythoners = {'jason', 'nick', 'tank', 'sean'}
linuxers = {'nick', 'egon', 'kevin'}
print(pythoners|linuxers)
print(pythoners.union(linuxers))
#{'jason', 'kevin', 'sean', 'tank', 'nick', 'egon'}
#{'jason', 'kevin', 'sean', 'tank', 'nick', 'egon'}
4.交集:取两个集合中相同的元素 用&或者intersection()
pythoners = {'jason', 'nick', 'tank', 'sean'}
linuxers = {'nick', 'egon', 'kevin'}
#{'nick'}
#{'nick'}
5.差集:取一个集合中有另一个集合中没有的元素,用 - 或者difference()
pythoners = {'jason', 'nick', 'tank', 'sean'}
linuxers = {'nick', 'egon', 'kevin'}
#pythoner中有的linuxers中没有的
print(pythoners-linuxers) #{'jason', 'sean', 'tank'}
print(pythoners.difference(linuxers)) #{'jason', 'sean', 'tank'}
#linuxers中有的pythoner中没有的
print(linuxers-pythoners) #{'egon', 'kevin'}
print(linuxers.difference(pythoners)) #{'egon', 'kevin'}
6.对称差集:取两个集合中对方没有的元素的集合 用^或者symmetric_difference()
pythoners = {'jason', 'nick', 'tank', 'sean'}
linuxers = {'nick', 'egon', 'kevin'}
print(pythoners^linuxers)
print(pythoners.symmetric_difference(linuxers))
#{'kevin', 'sean', 'tank', 'jason', 'egon'}
#{'kevin', 'sean', 'tank', 'jason', 'egon'}
7.==判断两个集合是否相等,返回True或者False
8.父级:判断一个集合是否是另一个集合的父级 用 >,>=或者issuperset()
pythoners = {'jason', 'nick', 'tank', 'sean'}
linuxers = {'nick', 'egon', 'kevin'}
javaers = {'jason', 'nick'}
print(pythoners>linuxers) #False
print(pythoners>=linuxers) #False
print(pythoners>=javaers) #True
print(pythoners.issuperset(javaers)) #True
9.子集:判断一个集合是否是另一个集合的子集用<,<=或者issubset()
pythoners = {'jason', 'nick', 'tank', 'sean'}
linuxers = {'nick', 'egon', 'kevin'}
javaers = {'jason', 'nick'}
print(pythoners<linuxers) #False
print(pythoners<=linuxers) #False
print(javaers.issubset(pythoners)) #True
10.add,集合增加元素
s={1,2,3,'a'}
s.add('b')
print(s)
#{1, 2, 3, 'b', 'a'}
11.remove() 移除元素,指定元素不存在会报错
s = {1, 2, 'a'}
s.remove(1)
print(s) #{2,'a'}
12.diacard() 也是移除元素,若指定元素不存在也不会报错
13.difference_update(),a.difference_update(b)表示移除集合a中ab两个集合中共同存在的元素,得到一个新的集合a
pythoners = {'jason', 'nick', 'tank', 'sean'}
linuxers = {'nick', 'egon', 'kevin'}
pythoners.difference_update(linuxers)
print(pythoners)
print(linuxers)
#{'sean', 'jason', 'tank'}
#{'nick', 'kevin', 'egon'}
14.isdisjoint(),集合没有共同的部分返回True,否则返回False
pythoners = {'jason', 'nick', 'tank', 'sean'}
linuxers = {'nick', 'egon', 'kevin'}
print(pythoners.isdisjoint(linuxers)) #False
- 4.存一个值或多个值
多个值,且为不可变类型
- 5.有序或无序
无序
- 6.可变或不可变
集合是可变数据类型