English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Python 基础教程

Python 流程控制

Python Funktion

Python Datentypen

Python 文件操作

Python 对象和类

Python 日期和时间

Python 高级知识

Python 参考手册

Python iter() 使用方法及示例

Python-eingebaute Funktionen

Python的iter()函数返回给定对象的迭代器。

iter()函数创建一个可以一次迭代一个元素的对象。

当与for循环while循环等循环耦合时,这些对象很有用。

iter()函数的语法为:

iter(object, sentinel)

iter()参数

iter()函数有两个参数:

  • object-必须创建迭代器的对象(可以是settuples等)

  • sentinel(可选) -用于表示序列结束的特殊值

iter()返回值

  • iter()函数返回给定对象的迭代器对象。

  • 如果用户定义的对象未实现__iter__(),__next__()或__getitem()__,则会引发TypeError异常。

  • 如果还提供了sentinel参数,iter()将返回一个迭代器,直到没有找到标记字符为止。

Beispiel1:Python iter()的工作

# 元音列表
list of vowels
vowels = ['a', 'e', 'i', 'o', 'u']
vowels_iter = iter(vowels)
print(next(vowels_iter))  # 'a'
print(next(vowels_iter))  # 'e'
print(next(vowels_iter))    # 'i'
print(next(vowels_iter))    # 'o'
print(next(vowels_iter))    # 'u'

Ausgaberesultat

a
e
i
o
u

Beispiel2Custom object iter()

class PrintNumber:
    def __init__(self, max):
        self.max = max
    def __iter__(self):
        self.num = 0
        return self
    def __next__(self):
        if(self.num >= self.max):
            raise StopIteration
        self.num += 1
        return self.num
print_num = PrintNumber(3)
print_num_iter = iter(print_num)
print(next(print_num_iter))  # 1
print(next(print_num_iter))  # 2
print(next(print_num_iter))  # 3
#引发StopIteration
print(next(print_num_iter))

Ausgaberesultat

1
2
3
StopIteration

Beispiel3iter() mit dem Sentinel-Parameter

mit open('mydata.txt') als fp:
    for line in iter(fp.readline, ''):
        processLine(line)

Wenn das Programm ausgeführt wird, wird es im Lese-Modus geöffnetmydata.txtDatei.

Dann ruft der Aufruf iter(fp.readline, '') im for-Zyklus readline (jede Zeile im Textdatei lesen) auf, bis der Markenzeichen '' (leere Zeichenkette) erreicht wird.

Empfohlene Lektüre:Python-Iteratoren - Python-eingebaute Funktionen