day02.5-集合内置方法

集合——set的定义:test = {1,2,3,4,5} 或 test = frozenset(1,2,3,4,5)

特点:1. 集合是可变数据类型

      2. 集合中元素是无序的,可以是数字、字符串与元组等不可变数据类型

   3. 通过test = {1,2,3,4,5}方法定义的是可变集合;通过test = frozenset(1,2,3,4,5)方法定义的是不可变集合

1. 将指定元素添加到集合中

1 test = {1,2,3,4,5}
2 test.add(8)
3 print(test)
4 
5 """
6 运行结果:{1, 2, 3, 4, 5, 8}
7 结果分析:将元素8添加到集合test中
8 """

2. 拷贝集合中元素

1 test = {1,2,3,4,5}
2 v = test.copy()
3 print(v)
4 
5 """
6 运行结果:{1, 2, 3, 4, 5}
7 结果分析:将集合test中所有元素拷贝并赋值给v
8 """

3. 删除集合中指定元素;当该元素不存在时,返回错误信息

1 test = {1,2,3,4,5}
2 test.remove(3)
3 print(test)
4 
5 """
6 运行结果:{1, 2, 4, 5}
7 结果分析:删除集合test中值为3的元素
8 """

4. 删除集合中指定元素;当该元素不存在时,不做任何处理

 1 test = {1,2,3,4,5}
 2 test.discard(3)
 3 print(test)
 4 print("--"*20)
 5 
 6 test.discard(8)
 7 print(test)
 8 """
 9 运行结果:
10     {1, 2, 4, 5}
11     ----------------------------------------
12     {1, 2, 4, 5}
13 结果分析:
14     删除集合中值为3的元素;
15     由于集合中不存在值为8的元素,所以不做任何处理,集合中元素不变
16 """

5. 随机删除并返回集合中某一元素

 1 test = {1,2,3,4,5}
 2 v = test.pop()
 3 print(test)
 4 print(v)
 5 
 6 """
 7 运行结果:
 8     {2, 3, 4, 5}
 9     1
10 结果分析:随机删除集合中某一元素,并将该元素值返回给变量v
11 """

6. 清空集合中元素

1 test = {1,2,3,4,5}
2 test.clear()
3 print(test)
4 
5 """
6 运行结果:set()
7 结果分析:清空集合中所有元素,得到一个空白集合
8 """

7. 集合交运算

1 s1 = {1,2,3,4,5}
2 s2 = {1,3,5,7,9}
3 test = s1.intersection(s2)    #或test = s1 & s2
4 print(test)
5 
6 """
7 运行结果:{1, 3, 5}
8 结果分析:计算集合s1和s2的交集
9 """

8. 集合并运算

1 s1 = {1,2,3,4,5}
2 s2 = {1,3,5,7,9}
3 test = s1.union(s2)    #或test = s1 | s2
4 print(test)
5 
6 """
7 运行结果:{1, 2, 3, 4, 5, 7, 9}
8 结果分析:计算集合s1和s2的并集
9 """

9. 集合差运算

1 s1 = {1,2,3,4,5}
2 s2 = {1,3,5,7,9}
3 test = s1.difference(s2)    #或test = s1 - s2
4 print(test)
5 
6 """
7 运行结果:{2, 4}
8 结果分析:计算集合s1和s2的差集
9 """

10. 集合交叉补集运算

1 s1 = {1,2,3,4,5}
2 s2 = {1,3,5,7,9}
3 test = s1.symmetric_difference(s2)    #或test = s1 ^ s2
4 print(test)
5 
6 """
7 运行结果:{2, 4, 7, 9}
8 结果分析:计算集合s1和s2的交叉补集(相当于从两集合的并集中减去两集合交集)
9 """

11. 求集合交集,并将运算结果赋予源集合

1 s1 = {1,2,3,4,5}
2 s2 = {1,3,5,7,9}
3 s1.intersection_update(s2)
4 print(s1,s2)
5 
6 """
7 运行结果:{1, 3, 5} {1, 3, 5, 7, 9}
8 结果分析:计算集合s1和s2的交集,并将运算结果赋予集合s1,集合s2保持不变
9 """

12. 求集合差集,并将运算结果赋予源集合

1 s1 = {1,2,3,4,5}
2 s2 = {1,3,5,7,9}
3 s1.difference_update(s2)
4 print(s1,s2)
5 
6 """
7 运行结果:{2, 4} {1, 3, 5, 7, 9}
8 结果分析:计算集合s1和s2的差集,并将运算结果赋予集合s1,集合s2保持不变
9 """

13. 求集合交叉补集,并将运算结果赋予源集合

1 s1 = {1,2,3,4,5}
2 s2 = {1,3,5,7,9}
3 s1.symmetric_difference_update(s2)
4 print(s1,s2)
5 
6 """
7 运行结果:{2, 4, 7, 9} {1, 3, 5, 7, 9}
8 结果分析:计算集合s1和s2的交叉补集,并将运算结果赋予集合s1,集合s2保持不变
9 """

14. 判断两集合是否存在交集

 1 s1 = {1,2,3,4,5}
 2 s2 = {1,3,5,7,9}
 3 print(s1.isdisjoint(s2))
 4 
 5 """
 6 运行结果:False
 7 结果分析:
 8     若两集合不存在交集或其交集为空,则返回True
 9     若两集合存在交集或其交集非空,则返回False
10 """

15. 判断两集合是否满足s1<=s2

1 s1 = {1,2,3,4,5}
2 s2 = {1,2,3,4,5,6,7,8,9}
3 print(s1.issubset(s2))
4 
5 """
6 运行结果:True
7 结果分析:若两集合满足s1<=s2,即集合s1为s2的子集,则返回True;否则返回False
8 """

16. 判断两集合是否满足s1>=s2

1 s1 = {1,2,3,4,5,6,7,8,9}
2 s2 = {1,2,3,4,5}
3 print(s1.issuperset(s2))
4 
5 """
6 运行结果:True
7 结果分析:若两集合满足s1>=s2,即集合s1为s2的"父"集,则返回True;否则返回False
8 """

17. 更新集合元素

1 s1 = {1,2,3,4,5,6,7,8,9}
2 s2 = {1,2,3,4,5}
3 s2.update(s1)
4 print(s2)
5 
6 """
7 运行结果:{1, 2, 3, 4, 5, 6, 7, 8, 9}
8 结果分析:将集合s1的各个元素更新到集合s2中,相当于s1=s2
9 """
原文地址:https://www.cnblogs.com/zizaijiapu/p/10139070.html