En palabras simples, cualquier objeto sobre el que se pueda hacer un bucle es iterable. Por ejemplo, un objeto de lista es iterable y también lo es un objeto str. Los números de la lista y los nombres de las strings son iterables porque podemos recorrerlos en bucle (usando un bucle for en este caso). En este artículo, vamos a ver cómo verificar si un objeto es iterable en Python.
Ejemplos:
Entrada: «Hola»
Salida: el objeto no es iterable
Explicación: el objeto podría ser como (h, e, l, l, o)
Entrada: 5
Salida: el objeto ‘ int’ no es iterable
Ejemplo 1:
Python3
# code name = "Hello" for letter in name: print(letter, end = " ")
Producción:
H e l l o
Ejemplo 2:
Python3
# code number = 5 for i in number: print(i)
Producción
TypeError: 'int' object is not iterable
Sin embargo, un objeto int no es iterable y también lo es un objeto flotante. El número de objeto entero no es iterable , ya que no podemos recorrerlo.
Vamos a explorar las diferentes formas de verificar si un objeto es iterable o no. Usamos la función hasattr() para probar si el nombre del objeto de string tiene el atributo __iter__ para verificar la iterabilidad. Sin embargo, esta comprobación no es exhaustiva.
Método 1: usar la verificación del método __iter__.
Python3
# code name = 'Roster' if hasattr(name, '__iter__'): print(f'{name} is iterable') else: print(f'{name} is not iterable')
Producción:
Roster is iterable
Método 2: Usar la clase Iterable del módulo collections.abc.
Podríamos verificar que un objeto es iterable comprobando si es una instancia de la clase Iterable. La verificación de instancia informa que el objeto de string es iterable correctamente utilizando la clase Iterable. Esto también funciona para Python 3. Para Python 3.3 y superior, tendrá que importar la clase Iterable desde collections.abc y no desde colecciones como esta:
Python3
# code from collections.abc import Iterable name = 'Roster' if isinstance(name, Iterable): print(f"{name} is iterable") else: print(f"{name} is not iterable")
Producción:
Roster is iterable
Método 3: Usar la función integrada iter().
La función incorporada iter funciona de la siguiente manera:
- Comprueba si el objeto implementa __iter__ y lo llama para obtener un iterador.
- Si eso falla, Python genera TypeError , generalmente diciendo «El objeto C no es iterable «, donde C es la clase del objeto de destino.
Código:
Python3
# code name = "Roster" try: iter(name) print("{} is iterable".format(name)) except TypeError: print("{} is not iterable".format(name))
Producción:
Roster is iterable
Publicación traducida automáticamente
Artículo escrito por snowflake203 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA