Python基本数据类型之集合

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/WandDouDou/article/details/82700220

一、集合的定义和特性

1、集合的定义:使用大括号 { } 或者 set() 函数创建集合

set1 = {"wangdoudou", 123, ("hello", 456)}

输出结果:{123, ('hello', 456), 'wangdoudou'}

# 使用set()方法创建时里面只能有一个元素

set2 = set("wangdoudou") 

输出结果:{'a', 'w', 'g', 'n', 'd', 'o', 'u'}

set3  = set(["wangdoudou", 123, ("hello", 456)])

输出结果:{123, ('hello', 456), 'wangdoudou'}

2、特性

(1)、集合(set)是无序的

(2)、由不同的元素组成

(3)、元素类型必须是不可变的:数字,字符串,元组

(4)、创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典

(5)、集合去重性,相同的元素只保留一个

(6)、集合是可变类型

3、定义不可变集合:使用frozenset()方法

testset = frozenset("hello")

二、集合类的函数&方法

1、add(self, *args, **kwargs):添加元素,只能添加一个值

代码示例:

testset = {7, 1, 6, 2, 5, 3, 4}
print("testset原始的集合内容是:", testset)
testset.add("wangdoudou")
print("testset添加wangdoudou元素后的结果是:", testset)
testset.add(7)
print("testset添加7元素后的结果是:", testset)

输出结果:

2、clear(self, *args, **kwargs):清空集合

代码示例:

testset = {7, 1, 6, 2, 5, 3, 4}
print("testset原始的集合内容是:", testset)
testset.clear()
print("清空后的testset=", testset)

输出结果:

3、copy(self, *args, **kwargs):

代码示例:

testset = {7, 1, 6, 2, 5, 3, 4}
print("testset原始的集合内容是:", testset)
testset2 = testset.copy()
print("拷贝后的集合testset2为:", testset2)

输出结果:

4、difference(self, *args, **kwargs):求两个集合的差集,也就是左方独有的元素,也可用减号运算符操作

代码示例:

set1 = {1, 4, 6, 9, 18}
print("set1=", set1)
set2 = {2, 4, 6, 13, 21}
print("set2=", set2)
set3 = set1.difference(set2)
print("使用difference()函数求差集的结果是:", set3)
set4 = set2 - set1
print("使用-减号运算符求差集的结果是:", set4)

输出结果:

5、difference_update(self, *args, **kwargs):先求两个集合的差集,然后将差集赋值更新到原集合中

代码示例:

set1 = {1, 4, 6, 9, 18}
print("set1=", set1)
set2 = {2, 4, 6, 13, 21}
print("set2=", set2)
set1.difference_update(set2)
print("使用difference_update()函数将差值更新到集合中:", set1)

输出结果:

6、discard(self, *args, **kwargs):删除指定元素,不管元素存不存在都可以

代码示例:

testset = {7, 1, 6, 2, 5, 3, 4}
print("testset原始的集合内容是:", testset)
testset.discard("sss")
print("testset删除不存在的元素的结果是:", testset)
testset.discard(5)
print("testset删除存在的元素的结果是:", testset)

输出结果:

7、intersection(self, *args, **kwargs):求两个集合的交集,相当于 集合1&集合2

代码示例:

set1 = {1, 4, 6, 9, 18}
print("set1=", set1)
set2 = {2, 4, 6, 13, 21}
print("set2=", set2)
set3 = set1.intersection(set2)
print("使用intersection()函数求交集的结果是:", set3)
set4 = set1 & set2
print("使用&运算符求交集的结果是::", set3)

输出结果:

8、intersection_update(self, *args, **kwargs):求两个集合的交集并将交集更新到集合中

代码示例:

set1 = {1, 4, 6, 9, 18}
print("set1=", set1)
set2 = {2, 4, 6, 13, 21}
print("set2=", set2)
set1.intersection_update(set2)
print("使用intersection_update()将交集更新到集合中;", set1)

输出结果:

9、isdisjoint(self, *args, **kwargs):判断两个集合是否有交集,有,返回False,没有,返回True

代码示例:

set1 = {1, 4, 6, 9, 18}
print("set1=", set1)
set2 = {2, 4, 6, 13, 21}
print("set2=", set2)
print("使用isdisjoint()函数判断两个集合是否有交集:", set1.isdisjoint(set2))

输出结果:

10、issubset(self, *args, **kwargs):判断集合1是否为集合2的子集,相当于判断 集合1 <= 集合2

代码示例:

set1 = {1, 4, 6, 9, 18}
print("set1=", set1)
set2 = {2, 4, 6, 13, 21}
print("set2=", set2)
print("使用issubset()函数判断两个集合的父子集关系:", set1.issubset(set2))

输出结果:

11、issuperset(self, *args, **kwargs):判断集合1是否为集合2的父集 相当于判断 集合1 >= 集合2

代码示例:

set1 = {1, 4, 6, 9, 18}
print("set1=", set1)
set2 = {2, 4, 6, 13, 21}
print("set2=", set2)
print("issuperset()函数判断两个集合的父子集关系:", set1.issuperset(set2))

输出结果:

12、pop(self, *args, **kwargs):随机删除

代码示例:

testset = {7, 1, 6, 2, 5, 3, 4}
print("testset原始的集合内容是:", testset)
testset.pop()
print("testset随机删除后的结果是:", testset)

输出结果:

13、remove(self, *args, **kwargs):指定元素删除,指定的元素必须在集合中,否则会报错

代码示例:

testset = {7, 1, 6, 2, 5, 3, 4}
print("testset原始的集合内容是:", testset)
testset.remove(2)
print("testset移除元素2之后的内容是:", testset)

输出结果:

14、symmetric_difference(self, *args, **kwargs):求两个集合的交叉补集(将两个集合合并后去除相同的元素)

相当于 集合1 ^ 集合2

代码示例:

set1 = {1, 4, 6, 9, 18}
print("set1=", set1)
set2 = {2, 4, 6, 13, 21}
print("set2=", set2)
set3 = set1.symmetric_difference(set2)
print("使用symmetric_difference()函数求交叉补集的结果是:", set3)
set4 = set1 ^ set2
print("使用^异或运算符计算集合的交叉补集的结果是:", set4)

输出结果:

15、symmetric_difference_update(self, *args, **kwargs):求两个集合的交叉补集并将交叉补集更新到集合中

代码示例:

set1 = {1, 4, 6, 9, 18}
print("set1=", set1)
set2 = {2, 4, 6, 13, 21}
print("set2=", set2)
set1.symmetric_difference_update(set2)
print("使用symmetric_difference_update()函数将交叉补集更新到集合中:", set1)

输出结果:

16、union(self, *args, **kwargs):求两个集合的并集,相当于 集合1 | 集合2

代码示例:

set1 = {1, 4, 6, 9, 18}
print("set1=", set1)
set2 = {2, 4, 6, 13, 21}
print("set2=", set2)
set3 = set1.union(set2)
print("使用union()函数求两个集合的并集的结果是:", set3)
set4 = set1 | set2
print("使用|运算符求两个集合的并集的结果是:", set3)

输出结果;

17、update(self, *args, **kwargs):更新集合,参数为可迭代序列

代码示例:

set1 = {1, 4, 6, 9, 18}
print("set1=", set1)
set2 = {2, 4, 6, 13, 21}
print("set2=", set2)
set1.update(set2)
print("使用update()函数更新集合:", set1)

输出结果:

猜你喜欢

转载自blog.csdn.net/WandDouDou/article/details/82700220