博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python之迭代
阅读量:4487 次
发布时间:2019-06-08

本文共 2011 字,大约阅读时间需要 6 分钟。

1.何为迭代:

对于给定list或者tuple,通过for循环来遍历这个list或tuple,这种遍历我们称之为迭代(Iteration).

2.python中利用for...in语句来完成迭代语句:

(1)迭代list:

使用for...in语句迭代list时,是通过下标完成的,迭代tuple类似

>>>months=['January','February','March']>>>for i in range(len(months)):       print(months[i])JanuaryFebruaryMarch

(2)迭代dict:

首先明确,list这种数据类型是有下标的,但是像dict这种没有没有下标的数据类型,同样是可以进行迭代的,只要该数据类型是可迭代对象,比如就迭代dict的方法如下:

>>>d = {
'小明':0,'小红':65,'小兰':88}>>>for key in d: print(key) --------------------------------------------------------------------------------小明小兰小红

注意:a.因为dict的存储不是按照list的方式顺序排列,所以,迭代出的结果顺序很可能不一样。

          b.dict迭代,在默认情况下迭代的key,如果想要迭代value可以用for value in d.values(),

             如果要同时迭代key和value,可以用for k, v in d.items()

迭代value情况:

>>>d = {
'小明':0,'小红':65,'小兰':88}>>>for value in d.values(): print(value)-----------------------------------------------------------------------------------65088

同时迭代key和value情况:

>>>d = {
'小明':0,'小红':65,'小兰':88}>>>for k, v in d.items(): print(k,v)-----------------------------------------------------------------------------------小明 0小红 65小兰 88

(3)迭代字符串

因为字符串也是可迭代对象,因此我们可以对字符串进行迭代:

>>>for ch in 'ABC':       print(ch) ------------------------------------------------------------------------------------- A B C

3.利用collections模块的Iterable类型判断一个对象是否是可迭代对象

通常我们使用for循环时,只要这个对象是可迭代对象,for循环就能正常运行,而不用去管这个对象的是哪种数据类型的,但是我们怎么才能知道这个对象是否是可迭代对象呢,这就需要我们自己去判断了,方法是通过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 i, value in enumerate(['January','February','March']):           print(i,value)----------------------------------------------------------------------------0 January1 February2 March

ps:上述的for循环语句,引用了两个变量,这在python中是很常见的,例:

>>> for x, y in [(1, 2), (2, 4), (3, 8)]:...     print(x, y)...---------------------------------------------------------------1 22 43 8

 

  

转载于:https://www.cnblogs.com/ilym/p/8424156.html

你可能感兴趣的文章
11 个创新的网站滑动效果设计案例展示
查看>>
BZOJ4675
查看>>
闭包、循环setTimeout、立即执行函数
查看>>
linux之cut用法
查看>>
DataNucleus之JDO操作演示样例
查看>>
XML解析
查看>>
《Python编程从入门到实践》学习笔记7(第8章:函数)
查看>>
EXT核心API详解(二)-Array/Date/Function/Number/String
查看>>
Java自动计算表格某一数字列的和(2)
查看>>
详解2进制,10进制,16进制,8进制,36进制
查看>>
TCP header
查看>>
调查问卷Html5发展综述
查看>>
iPad 3g版完美实现打电话功能(phoneitipad破解)
查看>>
数据结构与算法之递推算法 C++与PHP实现
查看>>
VB连接Mysql数据库
查看>>
UOJ356 [JOI2017春季合宿] Port Facility 【启发式合并】【堆】【并查集】
查看>>
CSS实现背景透明,文字不透明(各浏览器兼容)
查看>>
JZOJ 3055. 【NOIP2012模拟10.27】比赛
查看>>
[图算法] 1003. Emergency (25)
查看>>
关于宏定义的一些用法
查看>>