python 遍历可迭代对象的实现方法

作者:&星火 时间:2021-03-02 07:13:07 

可迭代(iterable)

迭代(遍历)就是按照某种顺序逐个访问对象中的每一项。

Python中有很多对象都是可以通过for语句来直接遍历的,例如list、string、dict等,这些对象都是可迭代的,被称为可迭代对象。

可以将可迭代对象想象成一个容器,里面存放了有限个元素,并且每个元素都可以从中获取出来。那么这个容器就是可迭代的,这个容器就是可迭代对象。

所有的可迭代对象都需要实现__iter__方法,该方法就是用于当我们在循环时将可迭代对象转换成迭代器的。

迭代器(iterator)

迭代器是可迭代对象的一个子集。是一个可以记住遍历的位置的对象,它与列表、元组、集合、字符串这些可迭代对象的区别就在于__next__()方法的实现。也就是通过该方法可以一个个的将元素取出来。即遍历可迭代对象的方法就为迭代器。

迭代器支持__iter__()和__next__()方法。其中:iter()方法返回迭代器对象本身,而可迭代对象的该方法则返回其迭代器。

next()方法返回容器的下一个元素,在结尾时引发StopIteration异常。

方法1:使用for循环简单结构遍历

对迭代对象直接for循环遍历

li=[1,2,3,4]
li2=[5,6,7,8]
for i in li2:
   li.append(i)
print(li)

[1, 2, 3, 4, 5, 6, 7, 8]

方法2:借用 range() 和 len() 函数遍历

这种方法可以使用数组中常用的alist[i]来遍历列表

li=[1,2,3,4]
li2=[5,6,7,8]
for i in range(len(li2)):
   li.append(li2[i])
print(li)

[1, 2, 3, 4, 5, 6, 7, 8]

方法3:借用 iter() 函数遍历

这种方法是利用迭代器的思想,迭代器是一个可以记住遍历的位置的对象,迭代器有两个基本的方法:iter() 和 next()。
使用iter(iterable)即可把可迭代对象转换成迭代器;使用next(iterator)来获取迭代器的下一个值

li3 = [5,6,7,8]
for i in iter(li3):
   print(i)

5
6
7
8

方法4:借用 enumerate() 函数遍历

当既需要遍历索引同时需要遍历元素的时候,可以考虑使用enumerate函数,enumerate函数接受一个可遍历的对象,如列表、字符串等

li4 = ['C','C#','JAVA']
for i,li4 in enumerate(li4):
   print(i+1,li4)

1 C
2 C#
3 JAVA

来源:https://blog.csdn.net/weixin_57038791/article/details/129224380

标签:python,可迭代对象
0
投稿

猜你喜欢

  • 一些文档中没有介绍的SQL Server DBCC命令

    2008-12-09 14:24:00
  • JSP request.setAttribute()详解及实例

    2023-06-18 23:59:32
  • [xhtml+css实例]不规则导航的制作

    2008-04-04 18:11:00
  • SQL Server中链接服务器将替代远程服务器

    2009-06-15 11:03:00
  • PDO::getAttribute讲解

    2023-06-06 02:58:22
  • MYSQL数据库常用命令集合

    2009-02-26 16:01:00
  • ASP四级连动下拉列表程序段

    2009-07-03 15:33:00
  • Ubuntu下Python+Flask分分钟搭建自己的服务器教程

    2023-11-12 04:37:43
  • Go素数筛选分析详解

    2023-07-22 11:50:02
  • itchat-python搭建微信机器人(附示例)

    2022-05-04 00:00:54
  • PHP的mysqli_sqlstate()函数讲解

    2023-06-08 14:30:30
  • Python入门教程4. 元组基本操作 <font color=red>原创</font>

    2021-01-12 09:53:21
  • 教你快速了解公共MySQL的数据库服务器层

    2008-12-17 17:10:00
  • ie的javascript失效问题

    2009-09-21 12:49:00
  • Elasticsearch属性单词常用解析说明

    2023-06-12 14:47:36
  • 脚本安全的本质_PHP+MYSQL第1/3页

    2023-11-23 23:54:45
  • python实现在图片上画特定大小角度矩形框

    2023-03-16 22:03:14
  • php实现比较全的数据库操作类

    2023-11-22 02:15:10
  • 让设计散发文化韵味

    2009-03-22 15:01:00
  • ubuntu 18.04搭建python环境(pycharm+anaconda)

    2023-09-23 20:01:56
  • asp之家 网络编程 m.aspxhome.com