python将list转换为迭代器代码_python中的迭代器附带代码示例

迭代的概念

迭代就是执行重复的特定的任务,知道任务完成为止

相当于我们盖房子,今天添一块砖,明天加一块瓦,直到房子盖完为止。这里每天的工作就是一次迭代

(1.)可迭代对象

a.可以直接作用于for-in循环的数据类型都被称为可迭代对象:Iterable

b.可以使用isinstance()判断一个对象是否是可迭代对象

c.可以直接作用于for-in循环的数据类型

1>数据结构:list、set、tuple、dict、string

2>generator【生成器】【(),函数结合yield】

(2.)迭代器

a.迭代器:Iterator

b.不但可以作用于for-in循环,还可以使用next()函数将其中的元素获取出来,当获取完最后一个元素之后,当再次调用next方法,则会出现StopIteration错误,表示无法继续返回一个值

c.可以使用isinstance()判断一个对象是否是迭代器

结论:list、set、tuple、dict、string是可迭代对象,但是,不是迭代器,只有生成器才是迭代器

#导入模块

#collections:包【文件夹】

from collections import Iterable

print(isinstance([],Iterable))

print(isinstance((),Iterable))

print(isinstance({},Iterable))

print(isinstance((x for x in range(0,6)),Iterable))

print(isinstance("",Iterable))

print(isinstance(10,Iterable))

print(isinstance(True,Iterable))

print(isinstance(10.23,Iterable))

(3.)将可迭代对象转换为迭代器

迭代器一定是可迭代对象,但是,可迭代对象不一定是迭代器

iter():将可迭代对象转化为迭代器【主要针对list、set、tuple、dict、string】

from collections import Iterator

print(isinstance([],Iterator))

print(isinstance((),Iterator))

print(isinstance({},Iterator))

print(isinstance((x for x in range(0,6)),Iterator)) #生成器

print(isinstance("",Iterator))

ge = (x for x in [12,24,435,455,4])

for i in range(0,5):

print(next(ge))

#print(next(ge)) #StopIteration

list1 = [12,2,434,3]

#将列表转换为了迭代器

a = iter(list1)

print(next(a))

print(isinstance(iter([]),Iterator))

print(isinstance(iter(()),Iterator))

print(isinstance(iter({}),Iterator))

print(isinstance(iter(""),Iterator))

for x in [12,34,3545]:

print(x)

it = iter([12,34,3545])

while True:

try:

num = next(it)

except StopIteration:

break

(4.)总结

a.凡是可以使用for-in循环进行遍历元素的数据类型都是Iterable类型【可迭代对象】

b.凡是可以使用next()的数据类型都是Iterator类型

c.list、set、tuple、dict、string是Iterable类型,但是,可以通过iter()转换为

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值