迭代在百度百科的定义是:重复反馈过程的活动。Python中的迭代,我们可以理解为逐个可迭代对象中的元素。常见的可迭代的数据类型有:字符串、列表、元组、字典以及由range()函数产生的序列。
Python中通过for...in ...来实现迭代,所以for...in...又称作遍历循环。
#对列表的迭代
ls = ['Python','is','great']
for word in ls:
print(word)
#也可以这样进行迭代
for word in ['Python','is','great']:
print(word)
#通过下标的方式对列表中的元素进行迭代
for i in range(3):
print(ls[i])
像字符串、列表和元组都可以通过下标来获取其中的元素的,下标是从0开始,所以对于这样的数据类型可以通过第三种方式进行迭代。实际上只要是可迭代的数据类型都是可以进行迭代的,并不需要一定可以通过下标的方式对变量中的元素进行索引。比如说字典的迭代
d = {'ha':1,'hei':2,'he':3}
#对字典中的key进行迭代,字典的默认迭代key
for key in d:
print(key)
输出结果:
ha
hei
he
#对字典中的value进行迭代
for value in d.values():
print(value)
输出结果:
1
2
3
#同时对字典中的key、value进行迭代
for k,v in d.items():
print(k,v)
输出结果:
ha 1
hei 2
he 3
只演示可迭代对象都可以用for循环进行迭代,那么怎么判断一个对象是不是可迭代的呢?
可以通过collections中的Iterable来判断,用到了isinstance函数,代码如下:
from collections import Iterable
isinstance('12231',Iterable) #判断字符串是否为可迭代类型
输出:
True
isinstance({'ha':1,'hei':2},Iterable) #判断字典是否为可迭代类型
输出:
True
isinstance(1.23,Iterable) #判断小数是否为可迭代类型
输出:
False