Articles of iteración

Python `for` no itera sobre el objeto de enumeración

¿Por qué esto no se repite? import logging logging.basicConfig(level=logging.DEBUG) x = [] y = [[] for n in range(0, 1)] linedata = [“0″,”1″,”2”] x.append( linedata[0] ) d = linedata[1:] logging.debug( “d: {}”.format(d) ) e = enumerate(d) logging.debug( list(e) ) for k, v in e: logging.debug( “k:{} v:{}”.format( k, v ) ) y[int(k)].append( v ) #for […]

Convertir el promedio de los valores de la lista de Python en otra lista

Tengo listas como esta. list = [[“Joe”, 5, 7], [“Joe”, 6, 9], [“Mike”, 1,4], [“Joe”, 7,4], [“Mike”, 5,7]] ¿Cómo puedo convertir esta lista a una lista como esta: list2 = [[“Joe”, 6.00, 6.66], [“Mike”, 3.00, 5.50]] list2 [0] [1] y list2 [1] [1] son ​​los valores promedio de la primera lista con personas específicas (6.00 […]

rango (len (lista)) o enumerar (lista)?

Posible duplicado: Solo índice necesario: enumerar o (x) rango? ¿Cuál de estos sería considerado mejor / más claro / más rápido / más ‘Pythonic’? No me importa el contenido de la lista L , solo el tiempo que dura. a = [f(n) for n, _ in enumerate(L)] o a = [f(n) for n in range(len(L))] […]

¿Por qué la iteración sobre este bucle no agrega celdas en openpyxl?

Dado lo siguiente como el contenido de la primera hoja de un xlsx roi.xlsx: Entonces: wb = load_workbook(‘roi.xlsx’, data_only=True) ws=wb.worksheets[0] keynames = [i.value for i in ws.columns[0]] Quiero agregar valores a la columna B desde el siguiente dictado: mydict = {‘carnival’: 2, ‘festival’: 3} Cuando bash for k, v in mydict.items(): keyPosition = keynames.index(k) ws.cell(row […]

El orden de iteración establecido varía de una ejecución a otra

¿Por qué el orden de iteración de un conjunto de Python (con el mismo contenido) varía de una ejecución a otra, y cuáles son mis opciones para que sea consistente de una ejecución a otra? Entiendo que el orden de iteración de un conjunto de Python es arbitrario. Si pongo ‘a’, ‘b’ y ‘c’ en […]

¿Iterar sobre una secuencia de python en múltiplos de n?

¿Cómo puedo procesar los elementos de una secuencia en lotes, idiomáticamente? Por ejemplo, con la secuencia “abcdef” y un tamaño de lote de 2, me gustaría hacer algo como lo siguiente: for x, y in “abcdef”: print “%s%s\n” % (x, y) ab cd ef Por supuesto, esto no funciona porque está esperando un solo elemento […]

Personalizando unittest.mock.mock_open para iteración

¿Cómo debo personalizar unittest.mock.mock_open para manejar este código? file: impexpdemo.py def import_register(register_fn): with open(register_fn) as f: return [line for line in f] Mi primer bash lo intenté con read_data . class TestByteOrderMark1(unittest.TestCase): REGISTER_FN = ‘test_dummy_path’ TEST_TEXT = [‘test text 1\n’, ‘test text 2\n’] def test_byte_order_mark_absent(self): m = unittest.mock.mock_open(read_data=self.TEST_TEXT) with unittest.mock.patch(‘builtins.open’, m): result = impexpdemo.import_register(self.REGISTER_FN) self.assertEqual(result, […]

iteración superficial con nditer

Tengo una matriz tal: >>>y = np.random.randint(0, 255, (2,2,3)) >>>array([[[242, 14, 211], [198, 7, 0]], [[235, 60, 81], [164, 64, 236]]]) Y tengo que recorrer cada elemento triplete (desafortunadamente, la vectorización no me ayudará aquí …). Así que intenté: for i, j in np.nditer(y): print y[i, j], con la esperanza de obtener tal salida: [242, […]

Intersección de dos diccionarios en Python

Estoy trabajando en un progtwig de búsqueda sobre un índice invertido. El índice en sí es un diccionario cuyas claves son términos y cuyos valores son en sí mismos diccionarios de documentos cortos, con números de ID como claves y su contenido de texto como valores. Para realizar una búsqueda ‘AND’ de dos términos, debo […]

Cómo transformar una cadena de claves separadas por espacios, valores pares de palabras únicas en un dict

Tengo una cadena con palabras separadas por espacios (todas las palabras son únicas, no hay duplicados). Convierto esta cadena en lista: s = “#one cat #two dogs #three birds” out = s.split() Y cuenta cuántos valores se crean: print len(out) # Says 192 Luego trato de borrar todo de la lista: for x in out: […]