我是Python的初学者,我有一个问题:鉴于以下内容:
np.asarray([self.simulate(c) for c in challenges])
我想将其分解为以传统的编码方式看起来很熟悉。我可以说它相当于:
for c in challenges:
y = self.simulate(c)
y = np.asarray[y]
谢谢。
它不叫"pythonic looping",而是列表理解。
等效的将是:
items = []
for c in challenges:
items.append(self.simulate(c))
nparr = np.asarray(items)
你的方法的问题在于你没有构建一个列表,就像这个列表理解所做的那样。相反,您只是从np.asarray
索引一个项目,并且永远不会保存该值。此外,您甚至不想索引np.asarray
,您希望将列表传递给其构造函数。
您需要创建一个临时列表来保存每次迭代challenges
的返回值self.simulate(c)
,并将该列表传递给np.asarray
:
temp = []
for c in challenges:
temp.append(self.simulate(c))
array = np.asarray(temp)
另外,只是为了让您知道,您所指的"pythonic 循环"通常称为列表理解。"Pythonic"只是我们Python社区成员用来描述Python语言及其理想的惯用名称。