欢迎光临
我们一直在努力

迭代器与迭代对象

记住:迭代器一定是可迭代对象,但可迭代对象不一定是迭代器。

迭代器特征:遍历一遍就耗尽,自带__next__

目录

一)目前接触的迭代器:

1:调用zip()函数,执行后,返回值是可迭代对象,属于迭代器类型。

2:调用reversed()函数,执行后,返回值是可迭代对象,属于迭代器类型。

3:接触元组时,了解到的一个生成器表达式,返回可迭代对象,属于迭代器类型,该类型为

生成器。

4:调用iter()函数,执行后,返回值是可迭代对象,属于迭代器类型。

二)目前接触的迭代器对象:

1:调用range()函数,执行后,返回值是可迭代对象。

2:list列表本身就是可迭代对象。

3:tuple元组本身就是可迭代对象。

4:str字符串本身也是可迭代对象。


一)目前接触的迭代器:

1:调用zip()函数,执行后,返回值是可迭代对象,属于迭代器类型。

初步接触这个zip()函数,是将多个列表组合成元组的迭代器,

# zip()函数用法,将多个列表组合成元组,可迭代对象,遍历一次就耗尽,并返回这个zip对象。
# 如果各个迭代器的元素不一样,则返回列表长度与最短的对象相同;
e = [4,6,7,8]
f = [2,8,5,0]
g = [3,2,3,2,9]
h = zip(e,f,g)
print(type(h),h)

2:调用reversed()函数,执行后,返回值是可迭代对象,属于迭代器类型。

初步接触这个函数,是对列表数据进行排列,返回可迭代对象,属于列表反转迭代器

g = [3,2,3,2,9]
i = reversed(g)
print(type(g),g)
print(type(i),i,list(i))

3:接触元组时,了解到的一个生成器表达式,返回可迭代对象,属于迭代器类型,该类型为<class 'generator'>生成器。

# 列表推导式,生成列表对象。
a = [x*10 for x in range(10)]
b = (y for y in range(5))
print(type(a),a)
# 生成器推导式生成的不是列表,也不是元组,而是一个生成器对象。
print(type(b),b)

4:调用iter()函数,执行后,返回值是可迭代对象,属于迭代器类型。

接触这个是AI塞给我的,顺便了解下,

r = range(5)
it = iter(r) # range本身不是迭代器,iter之后才变成迭代器

二)目前接触的迭代器对象:

1:调用range()函数,执行后,返回值是可迭代对象。
2:list列表本身就是可迭代对象。
3:tuple元组本身就是可迭代对象。
4:str字符串本身也是可迭代对象。

它们可以反复遍历,不会读一次就清空;想要迭代器,套一层 iter()。

注意:由于现在学习有限,还未了解全面,其实拓展下去,还有迭代器与迭代对象的关系,这个后面接触到,了解更多,再详写。

赞(0)
未经允许不得转载:171主机测评 » 迭代器与迭代对象
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址