Python 中的可迭代类型

2024 年 8 月 29 日 | 4 分钟阅读

Python 中的可迭代对象是指可以包含零个、一个或多个元素的任何对象。可迭代对象能够根据用户的需要返回其元素。

由于这种能力,我们可以使用 Python 的 for 循环来遍历可迭代对象。

实际上,range() 方法是可迭代的,因为它的输出可以被遍历。

代码

输出

0
1
2
3
4

Python 中的字符串也是一个可迭代对象,因为我们可以使用 for 循环来遍历它的元素。

代码

输出

P
y
t
h
o
n

列表、元组和字典都属于可迭代对象,因为它们都可以被遍历。例如:

代码

输出

Elements of the list [1, 2, 3, 4, 5, 6]: 
1
2
3
4
5
6
Elements of the tuple (1, 2, 3, 4, 5, 6): 
1
2
3
4
5
6
Elements of the dictionary {'a': 1, 'b': 2, 'c': 3}: 
a 1
b 2
c 3

总的来说,任何可以被遍历的东西都是可迭代的。

什么是迭代器?

只有可迭代对象才能被迭代。而执行迭代的组件被称为迭代器。

iter() 方法从给定的可迭代对象中获取一个迭代器。例如:

代码

输出

<list_iterator object at 0x7f56952b54f0>
The type of iter_list object is:  <class 'list_iterator'>

一旦我们有了迭代器对象,就可以使用 next() 方法从可迭代对象中检索下一个元素。

代码

输出

<list_iterator object at 0x7f56952b5b50>
1

每次使用 next() 方法时,它都会给出可迭代对象中的下一个元素。例如:

代码

输出

<list_iterator object at 0x7f56951d6c40>
1
2
3
4
5

如果没有更多元素,而我们调用 next() 函数,我们将收到一个异常。

代码

输出

<list_iterator object at 0x7f56952b7100>
1
2
3
4
5
6
---------------------------------------------------------------------------
StopIteration                             Traceback (most recent call last)
<ipython-input-14-4456e4ae5daa> in <module>
     11 
     12 for i in range(7):
---> 13   e = next(list_iter)
     14   print(e)
     15 

StopIteration: 

迭代器是一个状态运算符。它表明在从特定迭代器中取出元素后,它已不再可用。

换句话说,在遍历给定的迭代器后,它就变空了。如果我们继续遍历它,它将返回空。

由于迭代器本身也可以被迭代,因此它也被视为 Python 中的可迭代对象。这可能会让人感到困惑。例如:

代码

输出

1
2
3
4
5
6

如果我们调用 iter() 方法并传入一个可迭代对象,它将返回该可迭代对象自身的迭代器。

因此,我们已经了解了 Python 中关于可迭代对象的许多知识。


下一个主题Python JWT