迭代对象
对于给定的列表或者元组,如果可以通过for循环进行遍历,那么这种遍历我们称之为迭代(iteration)
在python种,迭代是通过for ······ in结构完成的,python迭代的对象是一切可以迭代的对象,不限于列表、元组,字符串等同样可以迭代(字典和集合是无序的,但是同样可以进行迭代,只是可能每次迭代的结果不同而已,在默认的情况下,对字典的迭代是对字典中的key进行迭代,如果同时对字典种的key和value进行迭代,可以使用for k,v in d.items()进行迭代,d.items表示返回字典种的键值对信息,d.keys获取键,d.values获取值的信息)。
mydict = {'A':1,'B':2,'C':5}
print(mydict.keys())
print(mydict.values())
print(mydict.items())
for k in mydict.keys():
print(k)
for v in mydict.values():
print(v)
for k,v in mydict.items():
print(k,v)
B
A
C
2
1
5
B 2
A 1
C 5
python中的迭代只需要判断对象是否是可迭代对象即可,无需知道该对象是字典还是列表等,判断一个对象是否是可迭代对象我们可以通过collections中的Iterablele类型判断:
from collections import Iterable
print(isinstance('abc',Iterable))
print(isinstance(123,Iterable))
True
False
enumerate函数的用法,枚举对象
另外python内置函数enumerate(枚举对象),,enumerate是将可遍历的数据结构组为一个索引序列,同时列出数据和数据下表:
mydict = {'A':1,'B':2,'C':5}
for i in enumerate(mydict.keys()):
print(i)
(0, 'B')
(1, 'A')
(2, 'C')
可以看出enumerate有两个值,一个是数据的下标,一个是数据的本身,同时也可以使用两个参数的循环对该数据进行访问:
for i,values in enumerate(mydict.keys()):
print(i,values)
0 A
1 B
2 C
参考:https://www.liaoxuefeng.com/wiki/1016959663602400/1017316949097888