主要说明两个内容:
1. 什么是迭代
如下给定一个list 或tuple, 然后通过for...in...来循环打印出其值,这就是一个迭代的过程,这种遍历的过程我们称之为迭代.
list = ['can', 'I', 'help', 'you', '?']
tuple = ('can', 'I', 'help', 'you', '?')
for i in list:
print(list)
除了以上这种带下标的list/tuple外,不带下标的dict也是可以通过迭代来遍历来输出的.
dict = {1:'can', 2:'I', 3:'help', 4:'you', 5:'?'}
for value in dict.values():
print(value)
如果要同时输入key/value,则可如此:
for k,v in dict.items():
print(k,v)
另外,字符串里的每个字符也是可能通过迭代的方式来遍历的:
for char in 'test':
print(char)
2. 哪些类型的数据可以作为迭代对象?
如何判断哪些类型的数据是可以迭代对象的呢?需要用到collections模块里的Iterable
#!/user/bin/env python
#-*- coding:utf-8 -*-
from collections import Iterable
xInt = 123
xStr = 'abc'
xList = [123, 'abc']
xTuple = (123, 'abc')
xDict = {1:123, 2:'abc'}
xSet = {123, 'abc'}
print(f'xInt是否能迭代? : {isinstance(xInt, Iterable)}')
print(f'xStr是否能迭代? : {isinstance(xStr, Iterable)}')
print(f'xList是否能迭代? : {isinstance(xList, Iterable)}')
print(f'xTuple是否能迭代?: {isinstance(xTuple, Iterable)}')
print(f'xDict是否能迭代? : {isinstance(xDict, Iterable)}')
print(f'xSet是否能迭代? : {isinstance(xSet, Iterable)}')
输入的结果如下:
由此可知:
集合数据类型,如list、tuple、dict、set、str都是可以作为迭代对象的.