集合的学习

Posted scipio

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集合的学习相关的知识,希望对你有一定的参考价值。

#集合的学习
#集合set是装有独特值的无序"袋子",一个简单的集合可以包含任何数据类型的值。如果有两个集合,则可以执行像联合、交集以及集合求差等标准集合运算
#1、创建集合
a_set = {1}
print(a_set)
type(a_set)
a_set = {1,2}
print(a_set)

#2、以列表为基础创建集合
a_list = [a,b,sicpio,ice,knight]
#(1)创建列表
a_set = set(a_list)
#(2)创建集合,其元素为列表内的元素
print(a_set)
#输出{‘sicpio‘, ‘ice‘, ‘a‘, ‘knight‘, ‘b‘}
print(a_list)
#输出[‘a‘, ‘b‘, ‘sicpio‘, ‘ice‘, ‘knight‘],初始列表并未发生变化

#3、创建一个空集合
a_set = set()
print(a_set)
print(type(a_set))
#<class ‘set‘>属于类
print(len(a_set))
#0
not_sure = {}
#此创建非空集合,而是字典
print(not_sure)
print(type(not_sure))

#4、修改集合
#分别用:add()方法和update()方法向集合中添加值
a_set = {1,2}
a_set.add(4)
#添加一个值4
print(a_set)
print(len(a_set))
#输出3
a_set.add(1)
print(a_set)
#仍然为{1, 2, 4},无法添加,因为集合是装唯一值的袋子。添加已有的值不会发生错误和任何事,只是空操作

a_set = {1,2,3}
a_set.update({2,4,6})
print(a_set)
#输出{1, 2, 3, 4, 6},重复的不添加
a_set.update({3,6,9},{1,2,3,50})
print(a_set)
#输出{1, 2, 3, 4, 50, 6, 9}
a_set.update([10,20,30,50,60])
print(a_set)
#update只返回一个集合作为参数,并讲所有成员添加到初始列表中。像对参数集合中每个成员调用add()

#5、从集合中删除元素
#三种方法可以从集合中删除某个值,discard,remove,pop。
#(1)discard()
a_set = {1,2,4,5,6,7,9,23,45,67}
print(a_set)
a_set.discard(45)
print(a_set)
#删除45
#(2)remove()
a_set.remove(67)
print(a_set)

#discard与remove的区别是删除一个集合中不存在的值,discard是空指令,remove会引发一个keyError例外
#(3)pop()
a_set = {1,4,5,6,7,8,9,67,7,89,90}
a_set.pop()
a_set.pop()
print(a_set)
#pop()随机删除集合中的值,无序
#(4)clear()
a_set.clear()
#clear()清空集合,等价于a_set = set()
print(a_set)

#6、集合常见操作
a_set = {2,3,5,6,7,9,10,13,24,67,89}
print(2 in a_set)
#True
b_set = {1,2,3,6,7,8,34,68,89,90}
u_set = a_set.union(b_set)
#union()方法返回一个新集合,装着两个集合中出现的所有元素
print(u_set)
#输出{1, 2, 3, 67, 5, 6, 7, 34, 9, 10, 68, 8, 13, 24, 89, 90}
d_set = a_set.difference(b_set)
#difference方法返回的新集合中,装着所有在a_set出现但未再b_set中出现的元素
print(d_set)
#输出{67, 5, 9, 10, 13, 24}
i_set = a_set.intersection(b_set)
#intersection()方法返回的新集合装着同时在两个集合中出现的元素
print(i_set)
#输出{89, 2, 3, 6, 7}
s_set = a_set.symmetric_difference(b_set)
#symmetric_difference()方法返回一个集合,装着所有只在其中一个集合中出现的元素
print(s_set)
#输出{1, 67, 34, 68, 8, 5, 9, 10, 13, 24, 90}

a_set = {1,2,3}
b_set = {1,2,3,4}

if_set = a_set.issubset(b_set)
print(if_set)
if_set = b_set.issuperset(a_set)
print(if_set)

#a_set是b_set的子集,b_set是a_set的超集

 

以上是关于集合的学习的主要内容,如果未能解决你的问题,请参考以下文章

金蝶handler中 collection 代码片段理解

Alfred常见使用

比较 C# 中的字符串片段并从集合中删除项目

201621123054《Java程序设计》第九周学习总结

带有红宝石集合/可枚举的酷技巧和富有表现力的片段[关闭]

201621123048《Java程序设计》第九周学习总结