python高级特性-迭代

主要说明两个内容:

  • 什么是迭代
  • 哪些类型的数据可以作为迭代对象?

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都是可以作为迭代对象的.
 

猜你喜欢

转载自blog.csdn.net/lxy210781/article/details/81073159