Python iter()-Funktion
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
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:
iter()Wandle ein iterierbares Objekt in einen Iterator um.- 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
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
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 integrierte Funktionen
Andere Erweiterungen