集
在数学中,有集合(或集合论)这样的东西。也许你甚至在数学课程中学习过它们。您甚至可能熟悉维恩图。 
在实践中,一个集合可以被简单地认为是一组定义良好的单个对象,称为元素或成员。 
将对象分组为一个集合在编程中很有用,Python 为我们提供了内置类型  set。
 
集合(类型  集合)与其他类型的对象的不同之处在于可以对它们执行的独特操作。
 
Python 中的内置类型 set 具有以下特点:
 
集合的 -  元素是无序的(这意味着如果两个集合包含相同的元素,则它们是等价的)。集合的元素不是按顺序存储的,而是按照一定的算法存储的,可以让你快速判断一个元素是否属于一个集合(无需枚举所有元素);
 
- 集合元素是唯一的。不允许重复元素;
 
- 集合是可变的(例如,您可以向集合中添加一个元素),但集合中的元素本身必须是不可变的(数字、字符串、元组)。您不能使列表或另一个集合成为集合的元素;
 
 
 
创建 集合
1 种方式
简单的枚举 在花括号中的集合中的元素。 
x = {“学校”,“老师”,“班级”,学生 
  
2路 
使用内置函数  set()。
x = set()    #空集
list_name = [“Andry”,“Bob”,“Caroline”]
y = set(list_name)    #你可以创建多个 
                      # 来自任何可迭代对象
z = set(["Andry", "Bob", "Caroline"])     # {“鲍勃”、“卡罗琳”、“安德里”}
k = set(("Andry", "Bob", "Caroline"))     # {“鲍勃”、“卡罗琳”、“安德里”}
s = "字符串 s"
m = 集合 (s)    # {'我', 't', 'g', 'r', 'n', & #39;是的,' '} - 
              # 注意! 
              # 元素的顺序可以是任意的,
              # 元素不重复
n = {42, 'foo', 3.14159, 无, (1, 2, 3)}    # 元素在  
                                             #可以是不同的类型
 
设置输出
集合中的元素以任意顺序显示,不一定按添加顺序显示。
z = set([“Andry”, “Bob”, “Caroline”]) 
打印(z)     # {“鲍勃”、“卡罗琳”、“安德里”}
打印(*z)    # 鲍勃安德里卡罗琳 
            
            
                  
            
             
                    
            
                 
      
                  
           | 
	
		
 
     
              
              
                  
                       
            
                
          
            使用集合的方法
 
集合中的元素个数
 len() 方法返回集合中元素的数量。
 
k = {42, 'foo', 3.14159, 无, (1, 2, 3)} 
打印(len(k))    #5
 
确定 元素是否在集合中(成员资格 in)
k = {42, 'foo', 3.14159, 无, (1, 2, 3)} 
打印(k 中的 42)   #真
打印(k 中的 2)    # 错误
 
尽管集合中包含的元素必须是不可变类型,但集合本身是可以更改的。 
 
添加一个元素到 set
x.add() 
向集合  x 添加  ,它必须是唯一的不可变对象。
 
从集合中删除一个元素
1) x.remove() 
  从 x 集合中移除。如果 <elem> 不在 x 中,Python 将抛出异常(错误)。 
 
2) x.discard() 
同样的删除操作,但如果集合中不存在元素,则不会引发异常。 
 
3) x.pop() 
从集合中删除并返回一个随机元素。如果集合最初为空,则发生异常(错误)。 
 
4) x.clear() 
从集合中删除所有元素(清除集合)。 
            
            
                  
            
             
                    
            
                 
      
                  
           | 
	
		| 
 
     
          
           | 
	
		
 
     
              
              
                  
                       
            
                
          
            设置排序?
正如我们所知,不考虑集合中元素的顺序。那么谈论 Python 3 中的排序集合有意义吗?! (这就是为什么标题中有一个问号)
 为了快速找到集合中的元素,最好将它们以有序的形式存储在内存中。 
让我们看一些例子。同一集合中不同数据类型的元素会发生什么情况? 这样的元素不应该被排序。如果我们使用 print() 命令打印元素,它们将像这样输出: 
a = {0, 1, 12, 'b', 'ab', 3, 2, 'a'}
print(a) # {0, 1, 2, 3, 'a', 12, 'b', 'ab'}
在这种情况下,显示未排序的值。如果重复启动,则输出顺序可能不同。但这只是在混合不同类型的元素时。 
 
让我们尝试显示一种类型的数据(例如,只有数字):
一 = {0, 1, 12, 3, 2}
打印(a) # {0, 1, 2, 3, 12}
所有元素都按顺序显示。让我们尝试将其转换为列表:
一 = {0, 1, 12, 3, 2}
b = 列表(a)
打印(b) # [0, 1, 2, 3, 12]
同样,将按升序排列的元素写入列表。
事实证明,如果元素类型相同,则它们以有序的形式存储在内存中。但最好不要指望它,Python 算法会改变。 
如果你需要从集合中得到一个排序列表,最好使用sort (< code>sorted) 函数以确保 )。元素将被精确排序。您的代码将被其他人理解。  
            
            
                  
            
             
                    
            
                 
      
                  
           |