赞
踩
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
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: <class 'str'> type: <class 'int'>
- index: 小明 value: 149
- type: <class 'str'> type: <class 'int'>
- index: 小红 value: 140
- type: <class 'str'> type: <class 'int'>
-
-
- #function2
- for value in iter(s2):
- print (value)
- print('type:',type(value))
- ------------结果-------------
- ('小兰', 120)
- type: <class 'tuple'>
- ('小明', 149)
- type: <class 'tuple'>
- ('小红', 140)
- type: <class 'tuple'>
-
-
- #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: <class 'int'> type: <class 'tuple'>
- index: 1 value: ('小明', 149)
- type: <class 'int'> type: <class 'tuple'>
- index: 2 value: ('小红', 140)
- type: <class 'int'> type: <class 'tuple'>
以上是对set两种形式的遍历,可能还有更加好的方法,欢迎大家随时交流
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。