python高级特性之迭代与迭代器

版权声明:本文为博主原创文章,转载请标明出处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对象。

参考:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143178254193589df9c612d2449618ea460e7a672a366000

猜你喜欢

转载自blog.csdn.net/cdhahaha/article/details/83584455