Python学习之旅(九)

Python基础知识(8):集合

集合:由不同元素组成,无序的,不重复的序列

补充知识:可变类型:列表、字典;不可变类型:数字、字符串、元组

使用大括号{}或set()方法定义集合

se=set("hello")
se

结果:

{'e', 'o', 'l', 'h'}

可以使用set方法对列表进行去重

注:创建一个空集合必须用 set() 而不是 { }, { } 是用来创建一个空字典。

定义不可变字符要用frozenset方法,用add、remove、update方法无法改变frozenset定义的集合

集合的运算

交集&、并集|、补集(差集)-、对称补集^、子集<、超集(父集)>

交集 & 
并集 | 
补集(差集) - 
对称补集 ^ 
子集 < 
超集(父集) >

1、intersection:求交集

s1={1,2,3,4}
s2={7,2,4,9,10}
s1.intersection(s2)

结果:{2, 4}

2、union:求并集

s1={1,2,3,4}
s2={7,2,4,9,10}
s1.union(s2)

结果:

{1, 2, 3, 4, 7, 9, 10}

3、difference:求差集

s1={1,2,3,4}
s2={7,2,4,9,10}
s1.difference(s2)
结果:
{1, 3}
s2.difference(s1)
结果:
{9, 10, 7}

4、symmetric_difference:交叉并集

交叉并集可以看做并集减去交集

s1={1,2,3,4}
s2={7,2,4,9,10}
s1.symmetric_difference(s2)

结果:

{1, 3, 7, 9, 10}

集合方法

1、add:添加元素

2、clear:清除元素

3、copy:复制

4、pop:随机移除元素

5、remove:移除指定元素,若元素不存在则报错

6、discard:删除元素,若元素不存在不会报错

7、difference_update:求出差集后并对该集合进行更新

8、intersection_update:求出交集后并对该集合进行更新

9、isdisjoint:判断两个集合是否包含相同的元素,包含返回False,否则返回True

s1={1,2,3,4}
s2={7,2,4,9,10}
s1.isdisjoint(s2)

结果:False

10、issubset:判断一个集合的元素是否都在另一个集合中

s1={1,2,3,4}
s3={1, 2, 3, 4, 7, 9, 10}
s1.issubset(s3)

结果:True

11、issuperset:判断一个集合的元素是否包含另一个集合中的所有元素

s1={1,2,3,4}
s3={1, 2, 3, 4, 7, 9, 10}
s3.issuperset(s1)

结果:True

12、symmetric_difference_update:求出交叉并集后并对该集合进行更新

13、update:对多个元素进行更新

上一篇:Java向上转型的意义


下一篇:Flask实战-留言板-安装虚拟环境、使用包组织代码