Python之set遍历

系统 1612 0

     set是一组数,无序,内容不能重复,通过调用set()方法创建,那么如何对set集合进行遍历呢?

1.简单的set:

            
              s1 = set(['111', '222', '333'])
            
          

对于s1,是一组数,有几种方法可以遍历:

function1:直接用in的方式遍历set集合。

function2:用iter()迭代器来遍历集合

看到前两种方法可能有人就有疑问了,为啥和上面写入s1时候的顺序不一样,别急,往下看。

function3:这种方法只能输出index,并不能输出value,因为set不支持set['cols']的读取方式

function4:可以把index和value同时输出,看到这里大家应该可以明白,为什么function1和function2输出是333和222反过来了,因为333的index才是1,而222的index是2,输出是按照下标从小到大输出的。

            
              #function1
for value in s1:
    print (x)
--------结果---------
111
333
222

#function2
for value in iter(s1):
    print (value)
--------结果---------
111
333
222

#function3
for index in range(len(s1)):
    print (index)
--------结果---------
0
1
2

#function4
for index, value in enumerate(s1):
    print ('index:',index,'value:',value)
--------结果---------
index: 0 value: 111
index: 1 value: 333
index: 2 value: 222
            
          

2.复杂set

            
              s2 = set([('小明', 149), ('小兰', 120), ('小红', 140)])
            
          

可以看到,这个set有点类似字典,有key和value的感觉,那么这种set如何遍历呢?其实和上面的方法是一样的,我们来看下效果

在下面的结果中,可以看到,输出的顺序,其实和我们写入的是不一样的,这也是set的特点

注意:set的元素是tuple,因此 在function2和function4时,for 循环的变量被依次赋值为tuple。

function1是对每一组元素读取,因此是数据本身的类型

            
              #function1
for row in s2:
    print ('index:',row[0],'value:',row[1])
    print('type:',type(row[0]),'type:',type(row[1]))
------------结果-------------
index: 小兰 value: 120
type: 
              
                 type: 
                
                  
index: 小明 value: 149
type: 
                  
                     type: 
                    
                      
index: 小红 value: 140
type: 
                      
                         type: 
                        
                          


#function2
for value in iter(s2):
    print (value)
    print('type:',type(value))
------------结果-------------
('小兰', 120)
type: 
                          
                            
('小明', 149)
type: 
                            
                              
('小红', 140)
type: 
                              
                                


#function3
for index in range(len(s2)):
    print (index)
------------结果-------------
0
1
2

#function4
for index, value in enumerate(s2):
    print ('index:',index,'value:',value)
    print('type:',type(index),'type:',type(value))
------------结果-------------
index: 0 value: ('小兰', 120)
type: 
                                
                                   type: 
                                  
                                    
index: 1 value: ('小明', 149)
type: 
                                    
                                       type: 
                                      
                                        
index: 2 value: ('小红', 140)
type: 
                                        
                                           type: 
                                          
                                        
                                      
                                    
                                  
                                
                              
                            
                          
                        
                      
                    
                  
                
              
            
          

以上是对set两种形式的遍历,可能还有更加好的方法,欢迎大家随时交流

 


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论