【发布时间】:2018-05-17 21:49:54
【问题描述】:
我已经尝试在这方面进行了很多搜索,但是对于 python 来说相对较新,我觉得我缺少所需的术语来找到我正在寻找的东西。
我有一个函数:
def my_function(x,y):
# code...
return(a,b,c)
其中x 和y 是长度为2000 的numpy 数组,返回值是整数。我正在寻找一个速记(单行)来循环这个函数:
Output = [my_function(X[i],Y[i]) for i in range(len(Y))]
X 和 Y 的形状为 (135,2000)。但是,在运行此之后,我目前必须执行以下操作以将“输出”分成三个 numpy 数组。
Output = np.asarray(Output)
a = Output.T[0]
b = Output.T[1]
c = Output.T[2]
我觉得这不是最佳做法。我试过了:
(a,b,c) = [my_function(X[i],Y[i]) for i in range(len(Y))]
但这似乎不起作用。有谁知道快速解决我的问题的方法?
【问题讨论】:
-
只是出于好奇,为什么你会假设单行将比“多行”“更好”(并且“更好”是指更具可读性)?不要误会我的意思,我通常喜欢单行,但不以可读性为代价。
-
更多只是出于兴趣,我想我正在编写一个单独的项目,所以觉得这是探索其他风格的好机会。
标签: python loops for-loop tuples line