Python基础数据类型——集合

集合是关系测试型数据类型,集合中的元素各不相同,集合是无序的数据类型,集合中元素必须是不可变的数据类型。

集合分为可变和不可变,定义方式如下

#定义不可变集合
>>> st=frozenset("hello")
>>> st
frozenset({'o', 'l', 'h', 'e'})
>>> type(st)
<class 'frozenset'>
#定义可变集合
>>> st1={1,2,3,4}
>>> type(st1)
<class 'set'>
>>> st2=set("hello")
>>> st2
{'o', 'l', 'h', 'e'}

既然是可变集合的话,那么就支持增删方法,接下来我们一一学习

=====================================增
1:add增加
>>> st1
{1, 2, 3, 4}
>>> st1.add(5)
>>> st1
{1, 2, 3, 4, 5}
2:update方法
>>> st1.update(st2)
>>> st1
{1, 2, 3, 4, 5, 'l', 'h', 'e', 'o'}
=====================================删
1:pop随机删除
>>> st1.pop()
1
2:remove指定元素删除
>>> st1.remove('o')
>>> st1
{3, 4, 5, 'l', 'h', 'e'}
3:discard删除
>>> st1.discard(6)
>>> st1
{3, 4, 5, 'l', 'h', 'e'}
#注意:remove如果删除一个不存在的元素则抛出异常,但是discard如果删除元素不存在则不会抛出异常

集合是一种关系型测试数据,那么接下来我们学习一下常用集合的关系测试。

1:取出两个集合的交集(交集就是两个集合的相同的数据)
#方法1(&符号)
>>> st1
{3, 4, 5, 'l', 'h', 'e'}
>>> st2
{'o', 'l', 'h', 'e'}
>>> st1&st2
{'l', 'h', 'e'}
#方法2(intersection)
>>> st1.intersection(st2)
{'l', 'h', 'e'}
2:取出两个集合的并集(所谓的并集就是两个集合合并)
#方法1(|符号)
>>> st1|st2
{3, 4, 5, 'l', 'h', 'e', 'o'}
#方法2(union方法)
>>> st1.union(st2)
{3, 4, 5, 'l', 'h', 'e', 'o'}
3:取出两个集合的差集(差集就是没有的部分,但是并不是两个集合中都没有的)
#方法1(-符号)
>>> st1
{3, 4, 5, 'l', 'h', 'e'}
>>> st2
{'o', 'l', 'h', 'e'}
>>> st1-st2
{3, 4, 5}
>>> st2-st1
{'o'}
#方法2(difference方法)
>>> st1.difference(st2)
{3, 4, 5}

以上就是常用的关系测试的方法,其他内置方法(这里介绍一个交叉补集)

1:交叉补集(将两个集合合并,去掉相同的元素)
#方法1(^符合)
>>> st1
{3, 4, 5, 'l', 'h', 'e'}
>>> st2
{'o', 'l', 'h', 'e'}
>>> st1^st2
{3, 4, 5, 'o'}
#方法2(symmetric_difference方法)
>>> st2.symmetric_difference(st1)
{3, 4, 5, 'o'}

猜你喜欢

转载自blog.csdn.net/spades_linux/article/details/81099433