菜鸟笔记
提升您的技术认知

python set遍历-ag真人游戏

     set是一组数,无序,内容不能重复,通过调用set()方法创建,那么如何对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两种形式的遍历,可能还有更加好的方法,欢迎大家随时交流

 

网站地图