Python(九) 集合


程序员的公众号:源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}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值