由于字符串也是可迭代对象,因此,也可以作用于for循环:

>>> for ch in 'ABC':
... print ch
...
A
B
C

所以,当我们使用for循环时,只要作用于一个可迭代对象,for循环就可以正常运行,而我们不太关心该对象究竟是list还是其他数据类型。

那么,如何判断一个对象是可迭代对象呢?方法是通过collections模块的Iterable类型判断:

>>> from collections import Iterable
>>> 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 A
1 B
2 C

上面的for循环里,同时引用了两个变量,在Python里是很常见的,比如下面的代码:

>>> for x, y in [(1, 1), (2, 4), (3, 9)]:
... print x, y
...
1 1
2 4
3 9

最新文章

  1. 调用webservice 总结
  2. hibernate数据库连接池
  3. C++学习40 抛出自己的异常
  4. apache nginx php不显示版本号
  5. hdu 4800 Josephina and RPG
  6. headfirst之装饰模式
  7. Android开发之Handler的用法(源码分享)
  8. django模板语言中的extends,block和include
  9. Netty中的连接管理
  10. Centos7安装vsftpd (FTP服务器)
  11. Innodb和Myisam数据恢复
  12. Ubuntu下把缺省的dash shell修改为bash shell
  13. BZOJ1823[JSOI2010]满汉全席——2-SAT+tarjan缩点
  14. python练习实例2--------构造数据类型
  15. MySQL Errno : 1062 错误修复
  16. P3201 [HNOI2009]梦幻布丁
  17. TestNG测试方法
  18. Centos7安装Tomcat并部署DubboAdmin的War包并配置自动启动
  19. [No0000188][VCB-Studio 科普教程 2.5] 基于 PotPlayer 和 madVR 的播放器教程(已更新 XySubFilter)
  20. C++之输出100-200内的素数

热门文章

  1. GreenDao 3.x 注解中ToOne和ToMany的个人理解
  2. eclipse的垂直选择功能
  3. mysql-单表操作
  4. RYU的GUI安装
  5. GCD 代码以及GCD思想
  6. python_102_属性方法
  7. SC || Chapter7 健壮性和正确性
  8. 二叉树、二叉搜索树、平衡二叉树、B树、B+树的精确定义和区别探究
  9. Codeforces Round 513 (Div.1+Div.2)
  10. mysql中添加数据时,报错(incorrect string value:'\xf0\x9f ) 字符转换不正确