Python集合是一种新的数据类型,集合有两种类型:可变集合set()和不可变集合frozenset(),这两种集合操作方法分别是相似,但在本质上存在明显差异。集合是无序的、非重复的、不可随机访问的元素集合。它在概念和操作上类似于数学中的集合。有两种类型的集合:可变的和不可变的。一、数据类型比较下面是我们研究过的一些数据类型。下面的笔记是比较这些数据类型的结果,供学习集合之前参考。str1='pythonpython'#不可变,有序:可以通过下标访问list1=[1,2,3,2]#变量,有序:可以通过下标访问tup1=(1,2,3,2)#不可变,ordered:accessiblebysubscriptdict1={'name':'Tom','age':18,'love':'python'}#mutable,unordered:accessiblebykey2.变量集合构造方法1.直接构造set2={'name',19,'python'}print(set2,type(set2))返回结果:{19,'python','name'}2.使用函数构造str1='pythonpython'list1=[1,2,3,2]tup1=(1,2,3,2)dict1={'name':'Tom','age':18,'love':'python'}set3=set(str1)print(set3,type(set3))set4=set(list1)print(set4,type(set4))set5=set(tup1)print(set5,type(set5))set6=set(dict1)print(set6,type(set6))返回结果:{'t','n','p','o','h','y'}{1,2,3}{1,2,3}{'love','name','age'}3.使用派生来构造集合set7=set(iforiinrange(1,5))print(set7,type(set7))set8={iforiinlist1}print(set8,type(set8))set8={ifori在tup1}print(set8,type(set8))中返回结果:{1,2,3,4}{1,2,3}{1,2,3}三、不可变集合的构造方法不可变集合的构造(类似于可变集合,只是将set改为frozenset)1、使用frozenset()函数构造set3=frozenset(str1)print(set3,type(set3))set4=frozenset(list1)print(set4,type(set4))set5=frozenset(tup1)print(set5,type(set5))set6=frozenset(dict1)print(set6,type(set6))返回结果:frozenset({'p','n','t','h','y','o'})frozenset({1,2,3})frozenset({1,2,3})frozenset({'name','age','love'})2.导数构造set7=frozenset(iforiinrange(1,5))print(set7,type(set7))返回结果:frozenset({1,2,3,4})4.注意事项集合构造1.集合不能像其他数据集一样使用唯一符号构造。集合中使用的语法符号是{},与字典相同。此时直接使用{}构造,系统无法判断数据类型是字典还是集合,会默认为集合。set9={}print(type(set9))#默认是一个字典:正确的方法是使用构造函数。set9=set()set99=frozenset()2.Sets不能包含字典、列表等可变类型元素set10={'name',19,[1,2,3,2]}listisnothashable:TypeError:unhashabletype:'list'以上是对可变集合和不可变集合的构造方法。当然,还有配套的视频讲解。也许新手看视频会更好的吸收和消化。视频在python自学网(www.wakey.com.cn)上,有兴趣的可以看看。文章来源:www.wakey.com.cn/document-set-structure.html