Подтвердить что ты не робот

Функция с аргументами в двух списках

У меня есть два списка 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]

Вы можете найти какое-либо решение с помощью понятий? или другие способы его размещения (карта)?

4b9b3361

Ответ 1

zip - это то, что вы хотите:

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

Ответ 2

Вам нужно использовать zip:

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

Ответ 3

Я полагаю из вашего примера, что вы хотите использовать 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) не имеют одинаковой длины - убедитесь, что выбрали тот, который дает нужное вам решение.