集合set内部常用功能和使用方法-课堂笔记及课后总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集合set内部常用功能和使用方法-课堂笔记及课后总结相关的知识,希望对你有一定的参考价值。

set集合,是一个无序且不重复的元素集合。set集合由于使用到的不多,所以python内部没有为set提供语法糖,所以定义set的方法不像list,tuple有几种,定义set的方法只有一种:

set1 = set(),set()中的参数可以为,字符串,列表,元组,字典或是另外一个集合。但是需要注意的是,使用字典作为参数时,set会取dict.keys()来作为参数

使用字符串作为参数:

技术分享
str_set = set(parr)
str_set
{p, r, a}
View Code

使用列表作为参数:

技术分享
list_set = set([parr,age,sex])
list_set
{sex, parr, age}
View Code

使用元组作为参数:

技术分享
tuple_set = set((parr,age,sex))
tuple_set
{sex, parr, age}
View Code

使用字典作为参数:

技术分享
dic_set = set({name:parr,age:24,sex:man})
dic_set
{name, sex, age}
View Code

使用另一个集合作为参数:

技术分享
set1 = set(parr)
set2 = set(set1)
set2
{p, r, a}
View Code

集合类常用功能和方法:

1、add:添加元素到集合中,重复的元素不添加到集合中

add(self*args, **kwargs)

技术分享
set_a = set(parr)
set_a.add(b)
print(set_a)

#屏幕打印:{‘p‘, ‘r‘, ‘a‘, ‘b‘}
View Code

2、clear:清除集合中的所有元素

clear(self*args, **kwargs)

技术分享
set_a = set(parr)
set_a.clear()
print(set_a)

#屏幕打印:set(),表示集合已被清空
View Code

3、copy:浅拷贝(浅拷贝表示在内存中只开辟集合第一层的内存位置,其他的元素还是使用内存地址指向来做)

copy(self*args, **kwargs)

技术分享
set_a = set(parr)
set_b = set_a.copy()
print(set_b)

#屏幕打印:{‘p‘, ‘a‘, ‘r‘}
View Code

4、difference:集合的不同,A中存在的,B中不存在的

difference(self*args, **kwargs)

技术分享
set_a = set(parr)
set_b = set(arr)
set_diff = set_a.difference(set_b)
print(set_diff)

#屏幕打印:{‘p‘}
View Code

5、difference_update:从A中删除与集合B相同的元素,更新到A中

difference_update(self*args, **kwargs)

技术分享
set_a = set(parr)
set_b = set(arr)
set_a.difference_update(set_b)
print(set_a)

#屏幕打印:{‘p‘}
View Code

6、discard:从集合中移除指定的元素,不存在的元素不会报错

discard(self*args, **kwargs)

技术分享
set_a = set(parr)
set_b = set(arr)
set_a.discard(a)
print(set_a)

#屏幕打印:{‘p‘, ‘r‘}
View Code

7、intersection:查找两个集合的交集并返回一个新的集合

intersection(self*args, **kwargs)

技术分享
set_a = set(parr)
set_b = set(arr)
result = set_a.intersection(set_b)
print(result)

#屏幕打印:{‘a‘, ‘r‘}
View Code

8、intersection_update:取A、B两个集合的交集并更新到A中

intersection_update(self*args, **kwargs)

技术分享
set_a = set(parr)
set_b = set(arr)
set_a.intersection_update(set_b)
print(set_a)

#屏幕打印:{‘r‘, ‘a‘}
View Code

9、isdisjoint:判断是否没有交集,没有则返回True,有则False

isdisjoint(self*args, **kwargs)

技术分享
set_a = set(parr)
set_b = set(arr)
result = set_a.isdisjoint(set_b)
print(result)

#屏幕打印:False
View Code

10、issubset:判断当前集合是否为另一个集合的子集,如果是则返回True,反之返回False

issubset(self*args, **kwargs)

技术分享
set_a = set(parr)
set_b = set(arr)
result = set_a.issubset(set_b)
print(result)
result = set_b.issubset(set_a)
print(result)

#屏幕打印:False
                 True
View Code

11、issuperset:判断当前集合是否为另一个集合的复集,如果是则返回True,反之返回False

issuperset(self*args, **kwargs)

技术分享
set_a = set(parr)
set_b = set(arr)
result = set_a.issuperset(set_b)
print(result)
result = set_b.issuperset(set_a)
print(result)

#屏幕打印:True
                 False
View Code

12、pop:删除当前集合中的元素(python3中删除从第一个元素开始),并返回这个元素,如果集合为空则报错key error

pop(self*args, **kwargs)

技术分享
set_a = set(parr)
print(set_a)
result = set_a.pop()
print(result)
result = set_a.pop()
print(result)
result = set_a.pop()
print(result)

#屏幕打印:{‘r‘, ‘a‘, ‘p‘}
                     r
                     a
                     p
                                    
View Code

13、remove:删除当前集合中的指定元素,不存在报错

remove(self*args, **kwargs)

技术分享
set_a = set(parr)
set_a.remove(a)
print(set_a)

#屏幕打印:{‘r‘, ‘p‘}
View Code

14、symmetric_difference:对称差集,与difference的区别在于,difference只会找A在B中不存在的,而symmetric_difference会找A在B中不存在的,同时也会反向找B在A中不存在的

symmetric_difference(self*args, **kwargs)

技术分享
#如果set_b中不存在set_a中没有的元素则看不出与difference的差别:
set_a = set(parr)
set_b = set(arr)
set_diff = set_a.symmetric_difference(set_b)
print(set_diff)
set_diff = set_a.difference(set_b)
print(set_diff)
#屏幕打印:{‘p‘}
                  {p}

#如果set_b中存在set_a中没有的元素则能看出与difference的差别:
set_a = set(parr)
set_b = set(barr)
set_diff = set_a.symmetric_difference(set_b)
print(set_diff)
set_diff = set_a.difference(set_b)
print(set_diff)
#屏幕打印:对称差集:{‘b‘, ‘p‘}
                 差集:{p}
View Code

15、symmetric_difference_update:求对称差集并更新到A中

symmetric_difference_update(self*args, **kwargs)

技术分享
set_a = set(parr)
set_b = set(barr)
set_a.symmetric_difference_update(set_b)
print(set_a)

#屏幕打印:{‘p‘, ‘b‘}
View Code

16、union:求两个集合的并集(就是将两个集合的所有元素组合在一起,组成一个新的集合)

union(self*args, **kwargs)

技术分享
set_a = set(parr)
set_b = set(barr)
result = set_a.union(set_b)
print(result)

#屏幕打印:{‘a‘, ‘p‘, ‘r‘, ‘b‘}
View Code

17、update:将要传入的元素拆分后添加到集合中,元素可以是str、list、tuple、字典或另一个集合。字典还是只会取到keys。str会被拆分后放进去

update(self*args, **kwargs)

技术分享
set_a = set(parr)
set_b = set(hello)
set_a.update([1,2,3])
print(参数为列表:,set_a)
set_a = set(parr)
set_a.update((4,5,6))
print(参数为元组:,set_a)
set_a = set(parr)
set_a.update({7:v1,8:v2})
print(参数为字典:,set_a)
set_a = set(parr)
set_a.update(hello)
print(参数为字符串:,set_a)
set_a = set(parr)
set_a.update(set_b)
print(参数为另一个集合:,set_a)

#屏幕打印: 参数为列表: {1, 2, 3, ‘r‘, ‘a‘, ‘p‘}
                  参数为元组: {4, 5, r, a, 6, p}
                  参数为字典: {7, r, a, p, 8}
                  参数为字符串: {o, e, r, a, p, h, l}
                  参数为另一个集合: {o, e, r, a, h, p, l}
View Code

以上是关于集合set内部常用功能和使用方法-课堂笔记及课后总结的主要内容,如果未能解决你的问题,请参考以下文章

Python Str内部功能-个人课堂笔记,课后总结

动手动脑及课后实验整理集合

小甲鱼Python第027讲集合:在我的世界里,你就是唯一 | 课后测试题及参考答案

Python 学习笔记 2Python中常用集合类型:List,Tuple,Set,Dict使用简介

第016讲:序列!序列! (课后测试题及答案 )

Python数据类型:集合set及使用