上一章学到了集合的基础概念,也列举了一些简单的方法如:

增,删,查,改(改的集合的属性;转列表,元组,字符串)集合的基础知识

这一章学习的是集合的其他方法,集合在数学里运用广泛,未来所需要运用到人工智能,大数据分析的,这章的内容还是要认真了解和学习的。

1;交集:元素既在A集合里出现且也在B集合里出现的元素称为交集。A & B

2;并集;A集合与B集合合并,去重的结果称为并集。A | B

3;差集:只在A集合出现但没在B集合里出现的,或只在B集合里出现但没在A集合里出现的。A - B B-A

4;对称差集:排除掉A集合和B集合共有的元素后,输出剩余的 A ^ B (B ^ A)也是一样

这些概念与数学里集合的定义是一样的,来看例子:

a=['北京','上海','广州','深圳','广西','湖北','湖南'] b=['北京','东北','澳大利亚','上海','澳门','香港','深圳'] # 实际情况下是列表,元组出现的情况居多,转化为集合 a1=set(a) b1=set(b) print(f"交集的结果(2个集合的元素,都出现的元素是):\n{a1 & b1}") print(f"并集的结果(2个集合元素合并去重的结果是:):\n{a1 | b1}") print(f"差集的结果(2个集合的元素,只在a出现过的元素是):\n{a1 - b1}") print(f"差集的结果(2个集合的元素,只在b出现过的元素是):\n{b1 - a1}") print(f"对称差集的结果(排除掉A集合和B集合共有的元素后,剩余的是):\n{a1^b1}")

判断返回的是True 和 False,集合的判断不能用in

5;子集 与 真子集:

子集就是一个集合中的全部元素是另一个集合中的元素,有可能与另一个集合相等;

使用的符号是: <=

真子集就是一个集合中的元素全部是另一个集合中的元素,但不相等。

使用的符号是:<

a=[1,2,3] b=[1,2,3] # 判断集合a 是不是 集合b的子集 print(set(a) <= set(b)) # 判断 a 是不是 集合b 的真子集 print(set(a) < set(b))

所以:

如果A是B的子集,那么A就一定是B的真子集,

如果A是B的真子集,A不一定是B的子集。

6;超集 与 真超集:

超集是一个集合中的全部元素包含了另一个集合中所有元素,有可能与另一个集合相等;

使用的符号是: >=

真超集是一个集合中的全部元素包含了另一个集合中所有元素,但不相等。

使用的符号是:>

a=[1,2,3,4] b=[1,2,3] # 判断集合a 是不是 集合b的超集 print(set(a) >= set(b)) # 判断 a 是不是 集合b 的真超集 print(set(a) > set(b))

所以:

如果A是B的超集,那么A就一定是B的真超集,

如果A是B的超集,A不一定是B的超集。

补充内容:

更新集合的方法,注意是更新update(这个更新在字典里也有使用)但更新 与添加add不同

来看看:

a = set('world') # 添加一个元素到集合a里,只能添加一个元素 # 只能添加不可变的序列进去,比如;字符串,数字,元组, a.add('nihao') # ('哈喽,明天') 是元组 a.add(('哈喽','明天')) print(a)

以add方式添加进去的元素,会保留原有的属性,字符串还是字符串,元组还是元组

python学习方法及技巧(python自学集合方法)(1)

以update方式添加到集合里的就完全不一样了;

1;添加进集合里,原来的元素属性不会发生变化,但会被一一拆开来

2;更新可以把列表更新进去。

a = set('chenglu') # 把集合a更新一下 a.update([1,2,3,4,5],'二狗',(9,0,7,0)) print(a)

python学习方法及技巧(python自学集合方法)(2)

我这样写的目的就是让大家能分辨出在什么时候,使用什么方法。

关于哈希值;

我们知道:

数值,字符串,元组是不可变的,

字典,列表,集合是可变的。

那到底是怎么区分的呢?咱们可以用到hash来看看他们的值

a='jintiantianqibucuo' b= 2022 c= (1,2,3,4) # 所以 字符串,数,和元组 都有嘻哈值。 # 有嘻哈值的都是不可变的, # 不可变的可以作为字典的键 print(hash(a),hash(b),hash(c)) a1={'春天':100,'夏天':200} print(hash(a1)) b1=[1,2,3,4] print(hash(b1)) c1={1,3,4,5} print(hash(c1))

不可变的都有嘻哈值,可变的都没有嘻哈值

编写不易,如果你觉得文章内容有趣,或对你有帮助,还请点赞,评论,转发啦~谢谢~

,