六、Python基本数据类型六:集合类型
·集合(set)是一个无序的不重复元素序列
·有可变集合和不可变集合两种类型
1、集合的创建
·使用大括号{ }
·使用set()函数
·创建空集合时必须用set()而不是{ },因为{ }是用来创建一个空字典
·可变集合使用set函数,不可变集合使用frozenset函数
set_a = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
set_b = set('abracadabra')
print(set_a, '\n', set_b)
#{'orange', 'banana', 'pear', 'apple'}
#{'b', 'r', 'a', 'd', 'c'}
set_a = set('this') set_b = set(['java', 'python', 'C++', 'PHP']) set_c = frozenset(['java', 'python', 'C++', 'PHP']) print(set_a, '\n', set_b, '\n', set_c) '''
输出结果:
{'t', 'h', 's', 'i'} {'python', 'PHP', 'java', 'C++'} frozenset({'python', 'PHP', 'java', 'C++'}) '''
2、集合的基本操作
(1)访问集合元素:使用成员操作符in或not in来判断某元素是否在集合中
set_a = set('this') 'i' in set_a #True
(2)添加元素
·s.add(x)方法:将元素x添加到集合s中,如果元素已存在则不进行任何操作
set_a = set(['java', 'python', 'C++', 'PHP']) set_a.add('html') set_a #{'python', 'PHP', 'java', 'C++', 'html'}
·s.update(x)方法:x可以是列表,元组,字典等
set_a = set('this') set_a.update([' ', 'H', 'i', 'P']) set_a #{'H', 's', 'i', 't', 'h', ' ', 'P'}
(3)删除元素
·s.remove(x)方法:将元素x从集合s中移除,如果元素不存在,则会发生错误
set_a = set(['java', 'python', 'C++', 'PHP']) set_a.remove('PHP') set_a #{'python', 'java', 'C++'}
·s.discard(x)方法:将元素x从集合s中移除,如果元素不存在,不会发生错误
set_a = set(['java', 'python', 'C++', 'PHP']) set_a.discard('C++') set_a #{'python', 'PHP', 'java'}
·s.pop()方法:随机删除
set_a = set(['java', 'python', 'C++', 'PHP']) set_a.pop() #'python' set_a #{'PHP', 'java', 'C++'}
(4)清空集合元素
·s.clear()方法
set_a = set('this') set_a.clear() set_a #set()
(5)计算集合元素个数
set_a = set(['java', 'python', 'C++', 'PHP']) len(set_a) #4
3、集合运算
·isdisjoint()方法:判断是否有交集,有为False,无为True
x = {"apple", "banana", "cherry"}
y = {"google", "runoob", "facebook"}
x.isdisjoint(y)
#True
y = {"google", "apple", "facebook"}
x.isdisjoint(y)
#False
y.isdisjoint(x)
#False
|
运算 |
运算符 |
新集合方法 |
更新原集合方法 |
|
并 |
a | b |
union |
update |
|
交 |
a & b |
intersection |
intersection_update |
|
差 |
a - b |
difference |
difference_update |
|
对称差 |
a ^ b |
symmetric_difference |
symmetric_difference_update |
4、集合的常用方法
|
方法 |
描述 |
|
为集合添加元素 |
|
|
移除集合中的所有元素 |
|
|
拷贝一个集合 |
|
|
返回多个集合的差集 |
|
|
移除集合中的元素,该元素在指定的集合也存在。 |
|
|
删除集合中指定的元素 |
|
|
返回集合的交集 |
|
|
返回集合的交集。 |
|
|
判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。 |
|
|
判断指定集合是否为该方法参数集合的子集。 |
|
|
判断该方法的参数集合是否为指定集合的子集 |
|
|
随机移除元素 |
|
|
移除指定元素 |
|
|
返回两个集合中不重复的元素集合。 |
|
|
移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。 |
|
|
返回两个集合的并集 |
|
|
给集合添加元素 |
浙公网安备 33010602011771号