python中什么是迭代?
*如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration)。
在Python中,迭代是通过for ... in来完成的,而很多语言比如C或者Java,迭代list是通过下标完成的,比如Java代码:
for (i=0; i<list.length;i++) {
    n= list;
}
可以看出,Python的for循环抽象程度要高于Java的for循环,因为Python的for循环不仅可以用在list或tuple上,还可以作用在其他可迭代对象上。
list这种数据类型虽然有下标,但很多其他数据类型是没有下标的,但是,只要是可迭代对象,无论有无下标,都可以迭代,比如dict就可以迭代:
>>> d = {'a': 1, 'b': 2, 'c': 3}>>>for key in d:...     print key
...
a
c
b
因为dict的存储不是按照list的方式顺序排列,所以,迭代出的结果顺序很可能不一样。
默认情况下,dict迭代的是key。如果要迭代value,可以用for value in d.itervalues(),如果要同时迭代key和value,可以用for k, v in d.iteritems()。
由于字符串也是可迭代对象,因此,也可以作用于for循环:
>>> for ch in 'ABC':...     print ch
...
A
B
C
所以,当我们使用for循环时,只要作用于一个可迭代对象,for循环就可以正常运行,而我们不太关心该对象究竟是list还是其他数据类型。
那么,如何判断一个对象是可迭代对象呢?方法是通过collections模块的Iterable类型判断:
>>> from collections importIterable>>> isinstance('abc', Iterable) # str是否可迭代True>>> isinstance([1,2,3],Iterable) # list是否可迭代True>>> isinstance(123, Iterable) # 整数是否可迭代False
最后一个小问题,如果要对list实现类似Java那样的下标循环怎么办?Python内置的enumerate函数可以把一个list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身:
>>> for i, value in enumerate(['A','B', 'C']):...     print i, value
...0 A1 B2 C
上面的for循环里,同时引用了两个变量,在Python里是很常见的,比如下面的代码:
>>> for x, y in [(1, 1), (2, 4), (3,9)]:...     print x, y
...1 12 43 9
小结
任何可迭代对象都可以作用于for循环,包括我们自定义的数据类型,只要符合迭代条件,就可以使用for循环。
(文章来自网络)

python中什么是迭代?相关推荐

  1. python中可迭代对象_什么是python中的可迭代对象(iterable object)?

    我们经常在打印报错信息中和英文的文档中看到iter这个词根,可以组合成iterable/iterate等派生词.这个iter可以翻译成"迭代",这样iterable object的 ...

  2. 怎么确定迭代器后面还有至少两个值_如何理解Python中的可迭代对象、迭代器和生成器

    ▍前言 在讨论可迭代对象.迭代器和生成器之前,先说明一下迭代器模式(iterator pattern),维基百科这么解释: 迭代器是一种最简单也最常见的设计模式.它可以让用户透过特定的接口巡访容器中的 ...

  3. 【Python基础】Python中的高效迭代库itertools,排列组合随便求

    本文目录 一.模块概述 二.组合生成器 2.1 product 2.2 permutations 2.3 combinations 2.4 combinations_with_replacement ...

  4. 玩转Python中迭代器与迭代对象的使用与演示

    0.什么是迭代器(iterator)与迭代对象? 比如:python中的集合数据类型,如 list . tuple . dict . set . str 等,我们可以使用for遍历其中的每个元素,此外 ...

  5. python中对象不可迭代_【转】Python中自定义可迭代对象

    python 中内置的可迭代的对象有 list.tuple.set.dict 等,那么我们自己怎么定义一个可迭代的对象呢?先来段代码吧 import re import reprlib RE_WORD ...

  6. Python中的可迭代对象和迭代器

    可迭代对象和迭代器 什么是可迭代对象(Iterable)? 可作用于for循环的对象.(即内部实现了__iter__()函数的对象) 例如:创建一个列表l,列表l中的数据可以通过for循环方式索要(即 ...

  7. python中的可迭代是什么意思,Python中的迭代和可迭代对象

    什么是迭代(iteration)呢? 给定一个list或者tuple,通过for循环来遍历这个list或者tuple.这种遍历就是迭代(iteration).只要是可迭代的对象都可以进行迭代.怎么判断 ...

  8. 经纬度坐标转换xy坐标 python_在Python中使用NewtonRaphson迭代将经纬度转换为xy Mollweide地图坐标...

    我试图编写一个程序,从用户那里获取一组经度和纬度坐标,将它们转换为Mollweide投影图的x&y坐标,然后报告这些坐标处的像素值(在本例中,是噪声温度).在 我使用的地图/数据是Haslam ...

  9. python中一切可迭代对象都支持解包 - Iterable Unpacking

    python封包 当多个元素赋值给一个变量时,python会自动将这些值封装成元组,这个特性称之为封包 a = 1, True, ['a', 'b'], {'age': 18} print(a, ty ...

最新文章

  1. 互联网协议 — Ethernet 局域网技术的发展
  2. flowable工作流 流程变量_Activiti工作流的应用示例
  3. 使用Spring Boot构建RESTFul服务
  4. Go 语言编译过程概述
  5. Bailian2994 拼装模型【哈夫曼树】
  6. Spring Cloud云架构-Restful 基础架构
  7. copy 和 deepcopy的区别
  8. java persistence,java-jpa(Java Persistence API)初识,
  9. 2022-2028全球与中国移动卫星通信市场现状及未来发展趋势
  10. Vue + JsBarcode 批量打印标签
  11. 文件共享服务器 域组访问设置权限,怎么对局域网所共享的文件进行访问权限管理...
  12. 怎么查看电脑最大支持扩展内存
  13. 微信小程序协同工作和发布
  14. python基于flask_sockets实现WebSocket——叁
  15. mysql有numeric类型吗_mysql数值类型 - numeric
  16. python爬取B站网页排行榜数据(进阶版)
  17. npm安装的全局包/工具不能使用,不是内部/外部命令
  18. linux交换分区的命令,LInux下的交换分区以及相关查看命令
  19. TINA-TI导入SPICE模型(.TSM/.LIB/.SP1)
  20. PS去图片上的logo并换上新的logo

热门文章

  1. 微软巨资收购Skype 网络电话行业受关注
  2. 2022-4-7 基于单片机的篮球记分器(LCD1602)(公众号:风吹摇铃 奔赴星海)
  3. 给大家分享几款浪漫的唯美APP
  4. odoo 中的 domian 和 运算符
  5. java网络编程作业基于UDP简单聊天窗口,图形化界面,包含客户端和服务端
  6. Java程序设计——模拟行星运动
  7. 2020PAT甲级秋季7-4 Professional Ability Test (30分)
  8. Laravel CSRF token mismatch
  9. 慢慢来,等待也是一种美好
  10. 多少开发人员 饿了么_开发个类似饿了么外卖app要多少钱