Código original en JS:
// applying crossover for (let i = cxpoint1; i < cxpoint2; i++) { let temp1 = ind1[i] let temp2 = ind2[i] ind1[i] = temp2 ind1[p1[temp2]] = temp1 ind2[i] = temp1 ind2[p2[temp1]] = temp2 return [ind1, ind2]Nuevo en JS y me pregunto qué está pasando en esta línea:
ind1[p1[temp2]] = temp1Tratando de entender para poder hacer una función equivalente en Python.
Entiendo la tarea, sin embargo, obviamente en Python no puede usar corchetes dobles como se muestra en la línea de arriba. Si alguien pudiera decirme el concepto, debería poder aplicarlo a mi situación.
Gracias por adelantado.
No hay nada mágico pasando aquí.
ind1[p1[temp2]] p1[temp2] resuelve en a valor, llamémoslo . Entonces la expresión se convierte en ind1[a] .
Para comprender completamente el código, se necesitaría saber cómo se ven las matrices p1 y p2, pero supongo que son matrices de enteros. Selecciona un número entero de esa matriz en la declaración interna que luego es el índice de la declaración externa.
Funciona exactamente igual en python:
ind1 = [1, 2, 3, 4, 5] p1 = [3, 1, 2] print(ind1[p1[0]]) # -> 4En este ejemplo, la declaración interna se resuelve en 3 (primer elemento en la lista p1) y la declaración externa luego se resuelve en 4 (cuarto elemento en la lista ind1).