Articles of iterable

Filtro de Python / combo máximo: comprobación del iterador vacío

(Utilizando Python 3.1) Sé que esta pregunta se ha preguntado muchas veces para la pregunta general de la prueba si el iterador está vacío; obviamente, no hay una solución clara para eso (supongo que por una razón: un iterador no sabe realmente si está vacío hasta que se le pide que devuelva su siguiente valor). […]

Python: mapa en su lugar

Me preguntaba si hay una manera de ejecutar el mapa en algo. La forma en que funciona el mapa es que toma un iterable y aplica una función a cada elemento en ese iterable produciendo una lista. ¿Hay alguna manera de hacer que el mapa modifique el objeto iterable?

¿Cómo implementar “siguiente” para que un objeto de diccionario sea iterable?

Tengo la siguiente envoltura para un diccionario: class MyDict: def __init__(self): self.container = {} def __setitem__(self, key, value): self.container[key] = value def __getitem__(self, key): return self.container[key] def __iter__(self): return self def next(self): pass dic = MyDict() dic[‘a’] = 1 dic[‘b’] = 2 for key in dic: print key Mi problema es que no sé cómo […]

Es el objeto de archivo en Python un iterable

Tengo un archivo “test.txt”: this is 1st line this is 2nd line this is 3rd line el siguiente código lines = open(“test.txt”, ‘r’) for line in lines: print “loop 1:”+line for line in lines: print “loop 2:”+line solo imprime: loop 1:this is 1st line loop 1:this is 2nd line loop 1:this is 3rd line No […]

¿Cómo hacer iterable un objeto personalizado?

Tengo una list de objetos de clase personalizada (la muestra está abajo). Usando: list(itertools.chain.from_iterable(myBigList)) quise “fusionar” todas las stations sublistas en una gran lista. Así que pensé que necesitaba hacer de mi clase personalizada un iterable. Aquí hay una muestra de mi clase personalizada. class direction(object) : def __init__(self, id) : self.id = id self.__stations […]

Python – TypeError: el objeto ‘int’ no es iterable

Aquí está mi código: import math print “Hey, lets solve Task 4 :)” number1 = input (“How many digits do you want to look at? “) number2 = input (“What would you like the digits to add up to? “) if number1 == 1: cow = range(0,10) elif number1 == 2: cow = range(10,100) elif […]

¿Cuál es la forma más corta de contar el número de elementos en un generador / iterador?

Si quiero la cantidad de elementos en un iterable sin preocuparme por los elementos en sí, ¿cuál sería la forma pythonica de obtener eso? En este momento, yo definiría def ilen(it): return sum(itertools.imap(lambda _: 1, it)) # or just map in Python 3 pero entiendo que lambda está cerca de ser considerada dañina, y lambda […]

Operador estrella * en el lado izquierdo y derecho de una statement de asignación

Estas preguntas provienen de PEP 448 – Generalizaciones de desempaquetado adicionales y está presente en Python 3.5 por lo que sé (y no está respaldado a 2.x ). Específicamente, en la sección Desventajas , se observa lo siguiente: Mientras que *elements, = iterable hace que los elements sean una list , elements = *iterable , […]

¿Qué significa exactamente “iterable” en Python?

Primero quiero aclarar, NO estoy preguntando qué es “iterador”. Así es como se define el término “iterable” en el documento de Python: iterable Un objeto capaz de devolver a sus miembros uno a la vez. Los ejemplos de iterables incluyen todos los tipos de secuencia (como list, str y tuple) y algunos tipos que no […]

Longitud de la salida del generador

Python proporciona un buen método para obtener la longitud de un ansioso iterable, len(x) . Pero no pude encontrar nada similar para los iterables perezosos representados por las funciones y las comprensiones del generador. Por supuesto, no es difícil escribir algo como: def iterlen(x): n = 0 try: while True: next(x) n += 1 except […]