首页 > 解决方案 > 这个生成器 for 循环的扩展形式是什么?

问题描述

我试图找出这个内联 for 循环的扩展形式。

from numpy import array

out_seq = array([in_seq1[i]+in_seq2[i] for i in range(len(in_seq1))])

形式中的等效表达式是什么

from numpy import array

for i in range(len(in_seq1)):
    ...

我假设我需要初始化out_seq = [],在迭代时附加到它,最后转换为 numpyarray类型(如out_seq = array(out_seq))?我尝试了几种不同的解决方案,但还没有任何效果。

标签: pythonnumpyloops

解决方案


你已经接近了,但你不应该把它[]放在一边out_seq,因为它已经是一个列表。

out_list = []
for i in range(len(in_seq1)):
    out_list.append(in_seq1[i]+in_seq2[i])
out_seq = array(out_list)

您还可以使用zip()来避免两个输入序列的显式索引:

for x, y in zip(in_seq1, in_seq2):
    out_list.append(x+y)

推荐阅读