Python 使用iter()函数

  • Post category:Python

当需要对一个可迭代对象进行迭代时,可以使用iter()函数将其转化为一个迭代器对象。迭代器对象可以通过next()函数逐个获取元素,直到没有元素可以获取时抛出StopIteration异常。iter()函数的基本用法如下所示:

iter(iterable)

其中,iterable表示一个可迭代对象,例如列表、元组、字符串等。调用iter()函数会返回一个迭代器对象。

下面的示例展示了如何使用iter()函数和next()函数迭代一个列表和一个字符串:

my_list = [1, 2, 3, 4, 5]
my_string = "Hello, world!"

# 使用iter()函数将列表和字符串转化为迭代器对象
list_iter = iter(my_list)
string_iter = iter(my_string)

# 使用next()函数逐一获取列表和字符串的元素
print(next(list_iter))    # 输出1
print(next(string_iter))  # 输出H
print(next(string_iter))  # 输出e
print(next(list_iter))    # 输出2
print(next(string_iter))  # 输出l

上述示例中,将一个列表和一个字符串都转化为迭代器对象,并且分别使用了next()函数获取它们的元素。需要注意的是,当迭代器对象的元素已经全部获取时,再调用next()函数会抛出StopIteration异常。

除了基本用法之外,iter()函数还可以接受两个参数,分别用于指定迭代器对象的起始位置和终止位置。下面的示例展示了如何使用iter()函数获取一个列表的子集:

my_list = [1, 2, 3, 4, 5]

# 使用iter()函数获取一个列表的子集
sub_list_iter = iter(my_list[1:4])

# 使用next()函数逐一获取子集中的元素
print(next(sub_list_iter))  # 输出2
print(next(sub_list_iter))  # 输出3
print(next(sub_list_iter))  # 输出4

上述示例中,使用my_list[1:4]获取了列表的子集,然后将子集转化为迭代器对象。最后,通过next()函数逐一获取了子集中的元素。