程序员的公众号:源1024,获取更多资料,无加密无套路!
最近整理了一波电子书籍资料,包含《Effective Java中文版 第2版》《深入JAVA虚拟机》,《重构改善既有代码设计》,《MySQL高性能-第3版》,《Java并发编程实战》等等
获取方式: 关注公众号并回复 电子书 领取,更多内容持续奉上
集合
集合(set)是一个无序的不重复元素序列。
集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作。
可以使用大括号 { } 创建集合,元素之间用逗号 , 分隔, 或者使用 set() 函数创建集合
创建
s1 = {1,2,'a','b','a'}
s2 = set([1,2,'a','b','a'])
print(s1)
print(s2)
#输出
{1, 2, 'a', 'b'}
{1, 2, 'a', 'b'}
创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典
s3 = set()
s4 = {}
print(s3)
print(type(s3))
print(s4)
print(type(s4))
#输出
set()
<class 'set'>
{}
<class 'dict'>
运算
a = set('abcdef')
b = set('asdfgh')
print(a)
print(b)
# 集合a中包含而集合b中不包含的元素
print(a - b)
# 集合a或b中包含的所有元素
print(a | b)
# 集合a和b中都包含了的元素
print(a & b)
# 不同时包含于a和b的元素
print(a ^ b)
#输出
{'e', 'a', 'b', 'f', 'c', 'd'}
{'a', 's', 'f', 'h', 'g', 'd'}
{'e', 'c', 'b'}
{'e', 'a', 's', 'b', 'f', 'h', 'g', 'c', 'd'}
{'f', 'a', 'd'}
{'e', 'h', 'g', 'c', 's', 'b'}
函数
add() | 添加元素 |
update() | 给集合添加元素 |
remove() | 移除指定元素 |
pop() | 随机移除元素 |
discard() | 删除集合中指定的元素 |
copy() | 拷贝一个集合 |
len() | 返回集合元素个数 |
union() | 返回两个集合的并集 |
difference() | 返回多个集合的差集 |
intersection() | 返回集合的交集 |
isdisjoint() | 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False |
issubset() | 判断指定集合是否为该方法参数集合的子集 |
symmetric_difference() | 回两个集合中不重复的元素集合 |
a = set([2,3,4,5])
print(a)
a.add(7)
print(a)
a.update({8,9})
print(a)
#移除
a.remove(8)
print(a)
#随机移除
a.pop()
print(a)
a.discard(7)
print(a)
b = a.copy()
print(b)
print(len(b))
a = set([1,3,5,7,9,2])
b = set([2,4,6,8,9])
print(a.union(b))
#返回多个集合的差集
print(a.difference(b))
#返回集合的交集
print(a.intersection(b))
#判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False
print(a.isdisjoint(b))
#判断指定集合是否为该方法参数集合的子集
print(a.issubset(b))
c = {2,4}
print(c.issubset(b))
#返回两个集合中不重复的元素集合
print(a.symmetric_difference(b))
输出
{2, 3, 4, 5}
{2, 3, 4, 5, 7}
{2, 3, 4, 5, 7, 8, 9}
{2, 3, 4, 5, 7, 9}
{3, 4, 5, 7, 9}
{3, 4, 5, 9}
{9, 3, 4, 5}
4
{1, 2, 3, 4, 5, 6, 7, 8, 9}
{1, 3, 5, 7}
{9, 2}
False
False
True
{1, 3, 4, 5, 6, 7, 8}