当前位置:   article > 正文

【Python】set遍历_python 遍历set

python 遍历set

     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,输出是按照下标从小到大输出的。

  1. #function1
  2. for value in s1:
  3. print (x)
  4. --------结果---------
  5. 111
  6. 333
  7. 222
  8. #function2
  9. for value in iter(s1):
  10. print (value)
  11. --------结果---------
  12. 111
  13. 333
  14. 222
  15. #function3
  16. for index in range(len(s1)):
  17. print (index)
  18. --------结果---------
  19. 0
  20. 1
  21. 2
  22. #function4
  23. for index, value in enumerate(s1):
  24. print ('index:',index,'value:',value)
  25. --------结果---------
  26. index: 0 value: 111
  27. index: 1 value: 333
  28. index: 2 value: 222

2.复杂set

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

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

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

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

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

  1. #function1
  2. for row in s2:
  3. print ('index:',row[0],'value:',row[1])
  4. print('type:',type(row[0]),'type:',type(row[1]))
  5. ------------结果-------------
  6. index: 小兰 value: 120
  7. type: <class 'str'> type: <class 'int'>
  8. index: 小明 value: 149
  9. type: <class 'str'> type: <class 'int'>
  10. index: 小红 value: 140
  11. type: <class 'str'> type: <class 'int'>
  12. #function2
  13. for value in iter(s2):
  14. print (value)
  15. print('type:',type(value))
  16. ------------结果-------------
  17. ('小兰', 120)
  18. type: <class 'tuple'>
  19. ('小明', 149)
  20. type: <class 'tuple'>
  21. ('小红', 140)
  22. type: <class 'tuple'>
  23. #function3
  24. for index in range(len(s2)):
  25. print (index)
  26. ------------结果-------------
  27. 0
  28. 1
  29. 2
  30. #function4
  31. for index, value in enumerate(s2):
  32. print ('index:',index,'value:',value)
  33. print('type:',type(index),'type:',type(value))
  34. ------------结果-------------
  35. index: 0 value: ('小兰', 120)
  36. type: <class 'int'> type: <class 'tuple'>
  37. index: 1 value: ('小明', 149)
  38. type: <class 'int'> type: <class 'tuple'>
  39. index: 2 value: ('小红', 140)
  40. type: <class 'int'> type: <class 'tuple'>

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

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/202001
推荐阅读
相关标签
  

闽ICP备14008679号