Función iter() de Python

Funciones integradas de Python3


iter()Es una función integrada de Python que se utiliza para convertir objetos iterables en iteradores.

El iterador es un concepto muy importante en Python,iter()Se pueden crear iteradores a partir de cualquier objeto iterable, lo que permite usarnext()la función para acceder a los elementos uno por uno.

Definición de términos: iter 是 iterator(迭代器)的缩写。


Sintaxis básica y parámetros

Formato de sintaxis

iter(object)
iter(object, sentinel)

Descripción de parámetros

  • Parámetro object:
    • Tipo: objeto iterable
    • Descripción: el objeto que se convertirá en iterador.
  • Parámetro sentinel(Opcional):
    • Tipo: cualquier valor
    • Descripción: valor centinela, cuando se itera hasta este valor, se detiene la iteración.

Descripción de la función

  • Valor de retorno: Devuelve un objeto iterador.
  • CaracterísticasEl iterador solo puede recorrer hacia adelante, no puede retroceder.

Ejemplos

Ejemplo 1: Uso básico

Ejemplo

# Crear un iterador desde una lista
my_list = [1, 2, 3]
iterator = iter(my_list)

# Usar next() para obtener elementos
print(next(iterator))  # Salida: 1
print(next(iterator))  # Salida: 2
print(next(iterator))  # Salida: 3

# Llamarlo de nuevo lanzará StopIteration
# print(next(iterator))

# También se puede recorrer con un bucle for
my_list = [1, 2, 3]
for item in iter(my_list):
    print(item, end=" ")
# Salida: 1 2 3

Resultado esperado de la ejecución:

1
2
3
1 2 3

Análisis del código:

  1. iter()Convierte el objeto iterable en un iterador.
  2. El iterador solo se puede recorrer una vez; una vez agotado, debe crearse de nuevo.

Ejemplo 2: Crear a partir de cadenas y tuplas

Ejemplo

# Iterador de cadena
s = "hello"
iterator = iter(s)

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

# Iterador de tupla
t = (1, 2, 3)
iterator = iter(t)

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

Resultado esperado de la ejecución:

h
e
l
1
2

Análisis del código:

  • El iterador de cadena devuelve un carácter cada vez.
  • El iterador de tupla devuelve un elemento cada vez.

Ejemplo 3: Usar el parámetro sentinel

Ejemplo

# Crear un iterador personalizado usando sentinel
def fibonacci():
    n = 0
    while True:
        yield n
        n += 1
        if n > 10:
            raise StopIteration

# Usar sentinel (detenerse cuando se lea un cierto valor)
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

# Crear un iterador que se detenga al encontrar "END"
data = ["a", "b", "c", "END", "d"]
iterator = iter(lambda: ReadUntil(data, "END"), None)

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

Resultado esperado de la ejecución:

a b c

El parámetro sentinel se utiliza para crear un comportamiento de iteración personalizado, normalmente se usa junto con callable.


Funciones integradas de Python3


Otras extensiones