Python iter()-Funktion

Python3 内置函数Python3 integrierte Funktionen


iter()Es ist eine in Python eingebaute Funktion, mit der ein iterierbares Objekt in einen Iterator umgewandelt wird.

Ein Iterator ist ein sehr wichtiges Konzept in Python,iter()Es kann aus jedem iterierbaren Objekt einen Iterator erstellen, was die Verwendung vonnext()der Funktion ermöglicht, um nacheinander auf Elemente zuzugreifen.

Glossar: iter 是 iterator(迭代器)的缩写。


Grundlegende Syntax und Parameter

Syntaxformat

iter(object)
iter(object, sentinel)

Parameterbeschreibung

  • Parameter object:
    • Typ: Iterierbares Objekt
    • Beschreibung: Das Objekt, das in einen Iterator umgewandelt werden soll.
  • Parameter sentinel(Optional):
    • Typ: Beliebiger Wert
    • Beschreibung: Sentinel-Wert; die Iteration stoppt, wenn dieser Wert erreicht wird.

Funktionsbeschreibung

  • Rückgabewert: Gibt ein Iteratorobjekt zurück.
  • Eigenschaft: Der Iterator kann nur vorwärts, nicht rückwärts durchlaufen werden.

Beispiele

Beispiel 1: Grundlegende Verwendung

Beispiel

# Erstelle einen Iterator aus einer Liste
my_list = [1, 2, 3]
iterator = iter(my_list)

# Verwende next(), um Elemente abzurufen
print(next(iterator))  # Ausgabe: 1
print(next(iterator))  # Ausgabe: 2
print(next(iterator))  # Ausgabe: 3

# Erneutes Aufrufen löst StopIteration aus
# print(next(iterator))

# Kann auch mit einer for-Schleife durchlaufen werden
my_list = [1, 2, 3]
for item in iter(my_list):
    print(item, end=" ")
# Ausgabe: 1 2 3

Erwartete Ausgabe:

1
2
3
1 2 3

Code-Erklärung:

  1. iter()Wandle ein iterierbares Objekt in einen Iterator um.
  2. Ein Iterator kann nur einmal durchlaufen werden; nachdem er erschöpft ist, muss er neu erstellt werden.

Beispiel 2: Erstellen aus Strings und Tupeln

Beispiel

# String-Iterator
s = "hello"
iterator = iter(s)

print(next(iterator))  # Ausgabe: h
print(next(iterator))  # Ausgabe: e
print(next(iterator))  # Ausgabe: l

# Tupel-Iterator
t = (1, 2, 3)
iterator = iter(t)

print(next(iterator))  # Ausgabe: 1
print(next(iterator))  # Ausgabe: 2

Erwartete Ausgabe:

h
e
l
1
2

Code-Erklärung:

  • Ein String-Iterator gibt jeweils ein Zeichen zurück.
  • Ein Tupel-Iterator gibt jeweils ein Element zurück.

Beispiel 3: Verwendung des sentinel-Parameters

Beispiel

# Einen benutzerdefinierten Iterator mit sentinel erstellen
def fibonacci():
    n = 0
    while True:
        yield n
        n += 1
        if n > 10:
            raise StopIteration

# sentinel verwenden (stoppen, wenn ein bestimmter Wert gelesen wird)
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

# Einen Iterator erstellen, stoppen wenn "END" auftritt
data = ["a", "b", "c", "END", "d"]
iterator = iter(lambda: ReadUntil(data, "END"), Keine)

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

Erwartete Ausgabe:

a b c

Der Sentinel-Parameter wird verwendet, um benutzerdefiniertes Iterationsverhalten zu erstellen, typischerweise mit einem Callable verwendet.


Python3 内置函数Python3 integrierte Funktionen


Andere Erweiterungen