内容来自雪峰的官方网站

1、如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration)

2、只要是可迭代对象,无论有无下标,都可以迭代。例如:dict、字符串

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

>>> from collections import Iterable
>>> isinstance('abc', Iterable) # str是否可迭代
True
>>> isinstance([1,2,3], Iterable) # list是否可迭代
True
>>> isinstance(123, Iterable) # 整数是否可迭代
False

4、Python内置的 enumerate函数 可以把一个list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身:

>>> for i, value in enumerate(['A', 'B', 'C']):
... print(i, value)
...
0 A
1 B
2 C
>>> for x, y in [(1, 1), (2, 4), (3, 9)]:
... print(x, y)
...
1 1
2 4
3 9

5、列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式

例如生成[1x1, 2x2, 3x3, ..., 10x10]:

>>> [x * x for x in range(1, 11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

6、list:[1, 2, 3]、tuple:(1, 2, 3)、dict:{1: 1, 2: 2, 3: 3}、set:set([1, 2, 3])

7、dict(key-value存储方式)的几种迭代示例

>>> dict = {'migo': 18, 'lucy': 17, 'jack': 22}
>>> for x in dict:
... print(x)
...
lucy
migo
jack
>>> for x in dict.values():
... print(x)
...
17
18
22
>>> for x, y in dict.items():
... print(x , y)
...
lucy 17
migo 18
jack 22

最新文章

  1. CodeSmith模板代码生成实战详解
  2. OPENGLES 基础(一些链接和随笔)
  3. vs2008中使用正则删除空行
  4. Java泛型类与类型擦除
  5. Linux下如何查看哪些端口处于监听状态
  6. 查看当前正在被执行的sql
  7. 数据分析≠Hadoop+NoSQL
  8. CSS3秘笈复习:十三章&十四章&十五章&十六章&十七章
  9. Java Garbage Collectors
  10. spring mvc:ueditor跨域多图片上传失败解决方案
  11. I/P/B/SI/SP帧和PTS/DTS的关系
  12. Nginx集群之SSL证书的WebApi微服务
  13. 【JavaScript的基本语法】
  14. POJ Ikki's Story IV - Panda's Trick [2-SAT]
  15. Devexpress中文语言包汉化
  16. C语言基础四(敲打键盘、寻找资料,循环语句)请一个个字读,助于您的学会机率
  17. shell脚本使用技巧2
  18. centos7-vmware克隆后的配置
  19. opencv2函数学习之erode、dilate:图像腐蚀和膨胀
  20. 圆锥体完全均衡下重力异常正演 [MATLAB]

热门文章

  1. 关于webpy模板自动HTML转义的问题
  2. Visual Studio启用64位 IIS Express 解决 x64位的dll 而出现 未能加载文件或程序集“xxxxxxxx”或它的某一个依赖项。试图加载格式不正确的程序。
  3. java 中方法的重写
  4. python读取文件行号和内容的便捷方法
  5. a new way of thinking about a problem
  6. 运行Chromium浏览器无法登录谷歌账号因为缺少google api密钥
  7. 2018/03/20 每日一个Linux命令 之 cp
  8. 设置elasticsearch一次最大数量查询
  9. Laravel和thinkphp的区别/优缺点
  10. resume 简历