首页 > 解决方案 > 从具有多个参数的函数定义列表

问题描述

我有以下功能:

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

  f = x - y * T + z + d

  return f

由此,我想制作一个从 func(x, y, z) 中提取的 f 值列表。值 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]

标签: pythonpython-3.xpython-2.7

解决方案


我想你想使用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)))

推荐阅读