El bucle for utiliza de nuevo zip() pero ahora le pasamos los ficheros fw y fa. Ocurre que en Python un objeto de tipo fichero es "iterable" como si fuera una lista, y cada vez que se itera sobre l se lee una lnea y ese es el valor de la iteracin. Por tanto las lneas se van leyendo de una en una, en vez de hacerlo todas de una vez, consumiento as una cantidad insignificante de memoria aunque los ficheros tengan millones de lneas.