Ответ 1
zip
- это то, что вы хотите:
[peaks([x,y]) for x,y in zip(xscat,yscat)]
У меня есть два списка xscat и yscat. Я хотел бы, чтобы понимание списка собирало x и y в xscat и yscat соответственно. Результирующий список должен содержать peaks([x[0], y[0]]), peaks([x[1], y[1]])
и т.д.
xscat=yscat=[-1, -1.5,5]
[peaks([x,y]) for x,y in xscat,yscat]
Вы можете найти какое-либо решение с помощью понятий? или другие способы его размещения (карта)?
zip
- это то, что вы хотите:
[peaks([x,y]) for x,y in zip(xscat,yscat)]
Вам нужно использовать zip
:
[peaks([x,y]) for (x,y) in zip(xscat, yscat)]
Я полагаю из вашего примера, что вы хотите использовать zip(), но на всякий случай, что вы действительно хотите сделать, это перебрать все возможные комбинации xscat и yscat, тогда у вас будет больше работы...
Итак, если вы хотите (xscat [0], yscat [0]), (xscat [0], yscat [1]), (xscat [0], yscat [2]) и т.д. вы можете сначала выполните вложенное понимание:
((x, y) для x в xscat для y в yscat)
будет генерировать ВСЕ пары и
[пики (x, y) для x в xscat для y в yscat]
должно дать решение, если вы хотите все перестановки.
Также, позаботьтесь о zip/map - вы получите разные результаты от тех, если списки (xscat и yscat) не имеют одинаковой длины - убедитесь, что выбрали тот, который дает нужное вам решение.
Попробуйте zip: http://docs.python.org/library/functions.html#zip
[peaks(x) for x in zip(zscat, yscat)]
Edit
Это предполагает, что пики могут принимать кортеж.