Función con argumentos en dos listas.

Tengo dos listas xscat y yscat. Me gustaría que la lista de comprensión recoja x e y en xscat y yscat respectivamente. La lista resultante debe contener peaks([x[0], y[0]]), peaks([x[1], y[1]]) , etc.

 xscat=yscat=[-1, -1.5,5] [peaks([x,y]) for x,y in xscat,yscat] 

¿Puedes encontrar alguna solución usando comprensiones? u otras formas de ponerlo (mapa)?

zip es lo que quieres:

 [peaks([x,y]) for x,y in zip(xscat,yscat)] 

Necesitas usar zip :

 [peaks([x,y]) for (x,y) in zip(xscat, yscat)] 

Supongo que de tu ejemplo quieres usar zip () pero, en caso de que lo que realmente quieras hacer sea iterar sobre TODAS las combinaciones posibles de xscat y yscat, entonces tienes más trabajo que hacer …

Entonces, si quieres (xscat [0], yscat [0]), (xscat [0], yscat [1]), (xscat [0], yscat [2]), etc … primero puedes hacer un Comprensión anidada:

((x, y) para x en xscat para y en yscat)

generará TODOS los pares y

[picos (x, y) para x en xscat para y en yscat]

Debería dar la solución si quiere todas las permutaciones.

Además, tenga cuidado con zip / map (obtendrá resultados diferentes de aquellos si las listas (xscat y yscat) no tienen la misma longitud; asegúrese de elegir la que le brinde la solución que necesita.

Pruebe zip: http://docs.python.org/library/functions.html#zip

 [peaks(x) for x in zip(zscat, yscat)] 

Editar

Esto supone que los picos pueden aceptar una tupla.