1. 基本用法
iter() 函数接受一个可迭代对象作为参数,返回该对象的迭代器。基本语法为:
iter(iterable)
示例:
my_list = [1, 2, 3]
my_iter = iter(my_list)
print(next(my_iter)) # 输出:1
print(next(my_iter)) # 输出:2
2. 可迭代对象类型
iter() 可以处理多种可迭代对象,包括但不限于:
- 列表(list)
- 元组(tuple)
- 字符串(str)
- 字典(dict,迭代的是键)
- 集合(set)
- 文件对象(file)
3. 自定义迭代器
iter() 也可以与自定义类一起使用,只要类实现了 __iter__() 方法或 __getitem__() 方法。
示例:
class MyNumbers:
def __init__(self, max_num):
self.max_num = max_num
def __iter__(self):
self.n = 0
return self
def __next__(self):
if self.n <= self.max_num:
result = self.n
self.n += 1
return result
else:
raise StopIteration
numbers = MyNumbers(5)
num_iter = iter(numbers)
for num in num_iter:
print(num)
4. 哨兵值用法
iter() 还有一个特殊用法,可以接受两个参数:
iter(callable, sentinel)
callable:可调用对象(通常是无参函数)sentinel:哨兵值,当调用返回值等于哨兵值时停止迭代
这种形式常用于读取文件直到特定标记出现,或处理输入流。
示例:
import random
def random_number():
return random.randint(1, 10)
# 当随机数等于5时停止
for num in iter(random_number, 5):
print(num)
5. 注意事项
6. 实际应用场景
- 处理大型数据集时避免一次性加载所有数据
- 实现惰性求值(lazy evaluation)
- 自定义数据结构的遍历行为
- 与生成器表达式结合使用
iter() 函数是 Python 迭代协议的核心组成部分,理解它的工作原理对于编写高效的 Python 代码非常重要。
随时随地看视频