Python joint enumerate con múltiples variables

Peterhack

Entonces me gustaría iterar sobre dos listas simultáneamente y también necesito el índice como se hizo con el siguiente código. Ambos son sencillos para mí, pero ¿es posible enumerar dos usos en el segundo caso también? Por supuesto, asumiendo que ambas matrices var tienen la misma longitud.

import numpy as np

def _eqn(y, variables, sign=-1.0):
    f = 0
    for i,x in enumerate(variables):
        f += x/(1+0.06)**(i+1)
    return float(sign*(y + f))


_eqn(1,np.array([1,1]))

def _eqn2(y, vars1, vars2, sign=-1.0):
    f = 0
    n = len(vars1)
    for x,y,i in zip(vars1, vars2, range(n)):
        f += (x+y)/(1+0.06)**(i+1)
    return float(sign*(y + f))


_eqn2(1,np.array([1,1]),np.array([1,1]))
Ignacio Vergara Kausel

Sí, es posible ... aunque con un ligero cambio

def _eqn2(y, vars1, vars2, sign=-1.0):
    f = 0
    for i, (v1,v2) in enumerate(zip(vars1, vars2)):
        f += (v1+v2)/(1+0.06)**(i+1)
    return float(sign*(y + f))

Enumeras tuplas del zipde tu vars.

Aunque, dado que está trabajando con numpymatrices, estoy seguro de que hay una mejor manera de lograr este mismo objetivo sin usar un forbucle de Python .

También se tomó la libertad de cambiar los nombres de las variables, ya que estaba usando ydos contextos diferentes y podría resultar confuso.

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados