一,基本概念
特点:
(1)无序性
(2)可以改变,不是序列
(3)包含元素需为不可变数据类型,切不可重复
(4)用{}包括内容
(5)创建空集合必须用函数set()
二,内置函数set([iterable])
作用:将可迭代对象iterable里面的元素取出来重组成一个集合返回
print(set("Chinaa"))
输出为
{'h', 'n', 'C', 'i', 'a'}
三,去重和关系测试
由于集合元素不可重复的特点,所以可以用来进行去重,如上例中去掉了重复的元素“a”;还可以进行关系测试,如测试多组集合数据之间的交集、差集、并集等关系
a = set("abdefga")
b = set("abc")
c = set("aef")
print(c <= a) # 判断c是否是a的子集
print(a - b) # 返回a和b的差集
print(a | b) # 返回a和b的并集
print(a & b) # 返回a和b的交集
print(a ^ b) # 返回a和b中不同时存在的元素(对称差)
print(a | b | c)
四,对象方法
1,查
(1)isdisjoint(other)
作用:如果集合中没有与 other 共有的元素则返回 True
set1 = {"1", 2, 3}
print(set1.isdisjoint([1, 2, '3']))
print(set1.isdisjoint([1, '2', '3']))
输出为
False
True
(2)issubset(other)
作用:如果集合中的每个元素都在 other 之中,则返回 True
set1 = {"1", 2, 3}
print(set1.issubset([1, 2, '3']))
print(set1.issubset(["1", 2, 3, 4,5]))
输出为
False
True
(3)issuperset(other)
作用:如果 other 中的每个元素都在集合之中,则返回 True
set1 = {"1", 2, 3, 4,5}
print(set1.issuperset([1, 2, '3']))
print(set1.issuperset(["1", 2, 3]))
输出为
False
True
2,改
(1)set.update(others)
更新集合,添加来自 others 中的所有元素
set1 = {"1", 2, 3, 4,5}
set1.update([6, '7'])
print(set1)
输出为
{2, 3, 4, 5, 6, '7', '1'}
(2)set.intersection_update(others)
更新集合,只保留其中在所有 others 中也存在的元素
set1 = {"1", 2, 3, 4,5}
set1.intersection_update([5, '7'])
print(set1)
输出为
{5}
(3)set.difference_update(others)
更新集合,移除其中也存在于任意一个 others 中的元素
set1 = {"1", 2, 3, 4,5}
set1.difference_update([5, '7'])
print(set1)
输出为
{2, 3, 4, '1'}
(4)set.add(elem)
将元素 elem 添加到集合中。如果元素已经存在,则没有影响
set1 = {"1", 2, 3, 4,5}
set1.add(5, '7')
print(set1)
输出为
{2, 3, 4, 5, '7', '1'}
(5)set.remove(elem)
从集合中移除元素 elem。 如果 elem 不存在于集合中则会引发 KeyError
set1 = {"1", 2, 3, 4,5}
set1.remove(5)
print(set1)
输出为
{2, 3, 4, '1'}
(6)set.discard(elem)
从集合中移除元素 elem。 如果 elem 不存在于集合中则不做任何操作
(7)set.clear()
从集合中移除所有元素
3,其他
(1)union(others)
作用:返回一个新集合,其中包含来自原集合以及 others 指定的所有集合中的元素(并集)
set1 = {"1", 2, 3, 4,5}
print(set1.union([6, '7']))
输出为
{2, 3, 4, 5, 6, '7', '1'}
(2)intersection(others)
作用:返回一个新集合,其中包含原集合以及 others 指定的所有集合中共有的元素(交集)
set1 = {"1", 2, 3, 4,5}
print(set1.intersection([5, '7']))
输出为
{5}
(3)difference(others)
作用:返回一个新集合,其中包含原集合中在 others 指定的其他集合中不存在的元素(差集)
set1 = {"1", 2, 3, 4,5}
print(set1.difference([5, '7']))
输出为
{2, 3, 4, '1'}
(4)copy()
作用:返回原集合的浅拷贝