Python iter() 函数

Python3 内置函数 Python3 内置函数


iter() 是 Python 中用于将可迭代对象转换为迭代器的内置函数。

迭代器是 Python 中非常重要的概念,iter() 可以从任何可迭代对象创建迭代器,允许使用 next() 函数逐个访问元素。

单词释义iter 是 iterator(迭代器)的缩写。


基本语法与参数

语法格式

iter(object)
iter(object, sentinel)

参数说明

  • 参数 object
    • 类型: 可迭代对象
    • 描述: 要转换为迭代器的对象。
  • 参数 sentinel(可选):
    • 类型: 任意值
    • 描述: 哨兵值,当迭代到该值时停止迭代。

函数说明

  • 返回值: 返回一个迭代器对象。
  • 特点: 迭代器只能向前遍历,不能后退。

实例

示例 1:基础用法

实例

# 从列表创建迭代器
my_list = [1, 2, 3]
iterator = iter(my_list)

# 使用 next() 获取元素
print(next(iterator))  # 输出: 1
print(next(iterator))  # 输出: 2
print(next(iterator))  # 输出: 3

# 再调用会抛出 StopIteration
# print(next(iterator))

# 也可以用 for 循环遍历
my_list = [1, 2, 3]
for item in iter(my_list):
    print(item, end=" ")
# 输出: 1 2 3

运行结果预期:

1
2
3
1 2 3

代码解析:

  1. iter() 将可迭代对象转换为迭代器。
  2. 迭代器只能遍历一次,耗尽后需要重新创建。

示例 2:从字符串和元组创建

实例

# 字符串迭代器
s = "hello"
iterator = iter(s)

print(next(iterator))  # 输出: h
print(next(iterator))  # 输出: e
print(next(iterator))  # 输出: l

# 元组迭代器
t = (1, 2, 3)
iterator = iter(t)

print(next(iterator))  # 输出: 1
print(next(iterator))  # 输出: 2

运行结果预期:

h
e
l
1
2

代码解析:

  • 字符串迭代器每次返回一个字符。
  • 元组迭代器每次返回一个元素。

示例 3:使用 sentinel 参数

实例

# 使用 sentinel 创建自定义迭代器
def fibonacci():
    n = 0
    while True:
        yield n
        n += 1
        if n > 10:
            raise StopIteration

# 使用 sentinel(当读到某个值时停止)
class ReadUntil:
    def __init__(self, data, stop_at):
        self.data = data
        self.stop_at = stop_at
        self.index = 0

    def __iter__(self):
        return self

    def __next__(self):
        if self.index >= len(self.data):
            raise StopIteration
        value = self.data[self.index]
        if value == self.stop_at:
            raise StopIteration
        self.index += 1
        return value

# 创建迭代器,遇到 "END" 时停止
data = ["a", "b", "c", "END", "d"]
iterator = iter(lambda: ReadUntil(data, "END"), None)

for item in iterator:
    print(item, end=" ")
# 输出: a b c

运行结果预期:

a b c

sentinel 参数用于创建自定义迭代行为,通常与 callable 一起使用。


Python3 内置函数 Python3 内置函数