版权声明:本文为博主原创文章,转载请标明出处http://blog.csdn.net/cdhahaha https://blog.csdn.net/cdhahaha/article/details/83584455
全部测试代码
#! /usr/bin/env python3
#_*_ conding:utf-8 _*_
迭代:Iterable
#python中使用for ... in ...来迭代对象
#python的for循环抽象程度高,不仅可作用在list和tuple上,还可以在任何可迭代的对象上,比如字符串
d={ 'a':1,'b':2,'c':3}
#默认迭代的是key
for key in d:
print('--key---',key)
#也可以迭代value
for value in d.values():
print('---value---',value)
#key value一起
for k,v in d.items():
print('key--',k,'value---',v)
#迭代字符串
for s in 'ABC':
print('s--',s)
from collections import Iterable
#判断一个对象是否为可迭代对象
i = isinstance('ABC',Iterable)
print('是否为可迭代对象--',i)
#list下标循环
for i,value in enumerate(['A','B','C']):
print(i,value)
#for循环中引用两个变量
for x,y in [(1,'a'),(2,'b'),(3,'c')]:
print(x,y)
迭代器:Iterator
直接作用于for循环的数据类型有以下几种:
一类是集合数据类型,如list、tuple、dict、set、str等;
一类是generator,包括生成器和带yield的generator function。
这些可以直接作用于for循环的对象统称为可迭代对象:Iterable。
可以使用isinstance()判断一个对象是否是Iterable对象
凡是可作用于for循环的对象都是Iterable类型;
凡是可作用于next()函数的对象都是Iterator类型,它们表示一个惰性计算的序列;
集合数据类型如list、dict、str等是Iterable但不是Iterator,不过可以通过iter()函数获得一个Iterator对象。