Определение списка из функции с несколькими аргументами - PullRequest
0 голосов
/ 12 мая 2018

У меня есть следующая функция:

def func(x, y, z):
  d = -5.9
  T = 230.0

  f = x - y * T + z + d

  return f

Из этого я хочу составить единый список значений f, извлеченных из func (x, y, z).Значения x, y и z представляют собой три разных списка значений.

Мой вопрос: как мне составить список значений f?Я пробовал следующее, но оно не работало должным образом:

f_list = [func(x, y, z) for x in x_list for y in y_list for z in z_list]

1 Ответ

0 голосов
/ 12 мая 2018

Я думаю, что вы хотите использовать zip:

f_list = [func(*vals) for vals in zip(x_list, y_list, z_list)]

или для очистки:

f_list = [func(x, y, z) for x, y, z in zip(x_list, y_list, z_list)]

Вы также можете использовать itertools.starmap:

import itertools
f_list  = list(itertools.starmap(func, zip(x_list, y_list, z_list)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...