青岛网站设计皆挺青岛博采网络,2021最新域名id地址,金融互助平台网站制作,甘肃省建设厅执业资格注册中心网站文章目录 1、迭代器2、生成器3、列表推导式和生成器表达式4、enumerate() 在Python中#xff0c;迭代器#xff08;Iterator#xff09;和生成器#xff08;Generator#xff09;是两种用于处理可迭代对象的重要工具。而可迭代对象包括列表#xff0c;元组#xff0c;字… 文章目录 1、迭代器2、生成器3、列表推导式和生成器表达式4、enumerate() 在Python中迭代器Iterator和生成器Generator是两种用于处理可迭代对象的重要工具。而可迭代对象包括列表元组字典字符串等。迭代器和生成器只能迭代一次通常用于处理大型数据集因为它们不会一次性加载所有数据到内存中而是根据需要逐个生成值。 列表是迭代器吗 在 Python 中列表List是可迭代对象Iterable但并不是迭代器Iterator。但可以使用内置函数 iter() 将列表转换为迭代器。转换后的迭代器可以使用 next() 函数来逐个获取元素。 1、迭代器
迭代器是一种对象它可以被迭代/遍历并返回可迭代对象中的元素。迭代器对象从第一个元素开始访问直到所有的元素被访问完结束。迭代器只能往前不会后退。类是通过__iter__和__next__两个方法实现的__ iter __() 方法返回迭代器对象本身而 __ next () 方法返回序列中的下一个元素。当没有更多的元素可返回时 next __() 方法会引发 StopIteration 异常。创建迭代器对象后就可以通过for循环或者next()来进行迭代/遍历。
class MyIterator:def __init__(self, data):self.data dataself.index 0def __iter__(self):return selfdef __next__(self):if self.index len(self.data):raise StopIterationelement self.data[self.index]self.index 1return elementmy_list [1, 2, 3, 4, 5]
my_iterator MyIterator(my_list)for element in my_iterator:print(element)
对于可迭代对象来说可以使用iter()方法创建迭代器再使用for循环或者next()方法遍历元素。 list[1,2,3,4]it iter(list) # 创建迭代器对象print (next(it)) # 输出迭代器的下一个元素
1print (next(it))
2list[1,2,3,4]
it iter(list) # 创建迭代器对象
for x in it:print (x, end )2、生成器
生成器是一种用于创建迭代器的特殊函数。生成器内部使用 yield 关键字来产生一个值而不是一次性产生所有值。这样做的潜在优点是可以节省大量的内存。创建生成器后可以用于迭代每次调用生成器进行迭代时依然可以使用for循环或者next方法它会暂停执行并将 yield 后面的表达式作为当前迭代的值返回。下次调用时它会从暂停的地方恢复执行。
def countdown(n):while n 0:yield nn - 1# 创建生成器对象
generator countdown(5)# 通过迭代生成器获取值
print(next(generator)) # 输出: 5
print(next(generator)) # 输出: 4
print(next(generator)) # 输出: 3# 使用 for 循环迭代生成器
for value in generator:print(value) # 输出: 2 13、列表推导式和生成器表达式
列表推导式和生成器表达式都是 Python 中用于创建新的可迭代对象的快捷方式。列表推导式使用方括号 [ ]并且可以包含一个或多个循环、条件语句以及表达式可以在单行中根据已有的可迭代对象如列表、元组等生成一个新的列表。
squares [x**2 for x in range(1, 6)]
print(squares)
# [1, 4, 9, 16, 25]生成器表达式与列表推导式的语法类似但使用圆括号 ( ) 而不是方括号 [ ]。它返回一个生成器对象可以逐个生成值而不是创建完整的列表。这样可以节省内存特别是当处理大量数据时。
squares (x**2 for x in range(1, 6))
print(squares)for square in squares:print(square)generator object genexpr at 0x000001234567890
1
4
9
16
254、enumerate()
enumerate() 是 Python 内置函数之一它用于同时遍历序列如列表、元组等的索引和对应的元素。enumerate() 函数接受一个可迭代对象作为参数并返回一个包含索引和元素组成的迭代器。
my_list [a, b, c]for index, element in enumerate(my_list, start1):print(index, element)1, b
2, c