Python中的集合-创新互联
Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。今天介绍的是Python中的集合。
镇宁网站建设公司创新互联,镇宁网站设计制作,有大型网站制作公司丰富经验。已为镇宁上千多家提供企业网站建设服务。企业网站搭建\成都外贸网站建设公司要多少钱,请找那个售后服务好的镇宁做网站的公司定做!一、什么是集合
除了列表,元组和字典,集合也是Python语言提供的内置数据结构之一,可以把集合看作是没有存储value的字典,因此集合的特点如下:
1. 集合中不可以存储重复的数据;
2. 集合中的数据是无序的;
3. 集合中的数据可以是任何不可变类型,多种类型的数据可以混合存储在一个集合中;
4. 集合可以根据需要动态的伸缩,也就是说,系统会根据需要动态的分配和回收内存,因此在使用前无须预先声明集合的容量;
5. 集合会浪费较大的内存,与列表相比是用空间换取了时间;
二、集合的创建
1、使用花括号{}创建集合
s = {3,5,8,1,2} print(s) # {1, 2, 3, 5, 8} s = {3,3,6,8,8,9} print(s) # {8, 9, 3, 6} s = {} print(type(s)) #2、使用内置函数set创建集合
s = set(range(1,6)) # {1, 2, 3, 4, 5} s = set([3,5,8,1,2]) # {1, 2, 3, 5, 8},可以传入列表 s = set((3,5,8,1,2)) # {1, 2, 3, 5, 8},可以传入元组 s = set({3,5,8,1,2}) # {1, 2, 3, 5, 8},可以传入{}集合 s = set('35812') # {'5', '8', '3', '2', '1'},传入的字符串会被分隔开 s = set() # set()三、集合的增删查
1、查操作
使用"in" "not in"对列表进行查操作
s1 = {'a','b','c'} print('a' in s1) # True print('d' not in s1) # True
2、增操作
使用add和update方法添加元素
s1 = {'a','b','c'} s1.add('d') # 一次添加一个元素 s1.update('e','f','g') # 一次添加多个元素 print(s1) # {'g', 'f', 'd', 'b', 'c', 'a', 'e'}3、删操作
使用pop,remove,discard,clear对集合做删操作
s1 = {1,2,3,4,5} print(s1.pop()) # 1 一次随机删除一个元素 s1.remove(3) # 删除元素3 print(s1) # {2, 4, 5} s1.discard(2) # 删除元素2 print(s1) # {4, 5} s1.clear() # 清空集合 print(s1) # set()四、集合之间的关系
1、两个集合是否相等,可以使用运算符== 和 != 进行判断
s1 = set([1,2,3,4]) s2 = set([2,3,4,5]) print(s1 == s2) # False print(s1 != s2) # True2、一个集合是否是另一个集合的子集
# 调用方法issbubset进行判断 s1 = {1,2,3,4} s2 = {3,4,6} s3 = {1,2,3,4,5} print(s1.issubset(s3)) # True print(s2.issubset(s3)) # False3、一个集合是否是另一个集合的超集
# 可以调用方法issuperset进行判断 print(s3.issuperset(s1)) # True print(s3.issuperset(s2)) # False4、两个集合是否没有交集
# 可以调用方法isdisjiont进行判断 s1 = {1,3,5,7} s2 = {22,11,44} s3 = {1,2,3,5,7,8} print(s1.isdisjoint(s2)) # True print(s1.isdisjoint(s3)) # False五、集合的数学操作
1、两个集合的交集
#s1和s2的交集 #使用intersection方法,返回的是两者的交集 #使用s1.intersection_update(s2)方法,返回值是none,但是会把交集的值赋给s1 s1 = {1,2,3,4} s2 = {3,4} print(s1.intersection(s2)) #{3, 4} print(s1 & s2 ) #{3, 4} print(s1.intersection_update(s2)) #None print(s1) #{3, 4}2、两个集合的并集
并集并集,合并的集合,使用union s1 = {1,2,3,4,5} s2 = {3,4,5} print(s1.union(s2)) #{1, 2, 3, 4, 5} print(s1 | s2 ) #{1, 2, 3, 4, 5}3、两个集合的差集
#既找到s1在s2中没有的元素 #使用difference()方法,找到差集 #使用s1.difference_update(s2)方法,返回的值为None,作用为将差集赋值给s1 s1 = {1,2,3,4,5,6} s2 = {1,7,9,4,10} print(s1 - s2 ) #{2,3,5,6} print(s1.difference(s2)) #{2,3,5,6} print(s1.difference_update(s2)) #None print(s1) #{2, 3, 5, 6}4、两个集合的对称差集
对称差集,既去掉两个集合交集的部分 s1 = {1,3,5,7,9} s2 = {2,3,6,7,10} print(s1 ^ s2 ) #{1, 2, 5, 6, 9, 10} print(s1.symmetric_difference(s2)) #{1, 2, 5, 6, 9, 10} print(s1.symmetric_difference_update(s2)) #None print(s1) #{1, 2, 5, 6, 9, 10}六、frozenset不可变的集合
frozenset,被冻结的set,也是不可变的set,frozenset置于set就好比tuple置于list
frozenset是不可变类型,存在以下特点:
● 存在哈希值
● 可以作为字典的key
● 可以作为set的元素
#可以调用内置函数frozenset创建 print(frozenset(range(6))) # frozenset({0, 1, 2, 3, 4, 5}) print(frozenset([1,2,5,7])) # frozenset({1, 2, 5, 7}) print(frozenset(('a','b','c'))) # frozenset({'a', 'c', 'b'}) print(frozenset('abcdef')) # frozenset({'c', 'f', 'e', 'a', 'b', 'd'}) #作为set的元素 s1 = set(frozenset([1,2,3,4,56,7,8])) print(s1,type(s1)) # {1, 2, 3, 4, 7, 8, 56}另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
网页名称:Python中的集合-创新互联
网址分享:http://azwzsj.com/article/dschce.html