嵌套循环列表理解

时间:2016-12-15 13:32:48

标签: python-3.x list-comprehension nested-loops

如何以列表理解方式编写下面的代码?

Residual = np.zeros((noRows, noRows))
Dist = np.zeros((noRows, noRows))
for i in range(noRows):
    for j in range(noRows):
        Residual[i][j] = (data[data.columns[2]][i]-data[data.columns[2]][j])**2
        Dist[i][j] = (data[data.columns[0]][i]-data[data.columns[1]][j])**2

1 个答案:

答案 0 :(得分:0)

我们没有完整的代码,但从我从代码段中看到的内容,解决方案应该是这样的:

Residual = [(data[data.columns[2]][i]-data[data.columns[2]][j])**2 for i in range(noRows) for j in range(noRows)]
Dist = [(data[data.columns[0]][i]-data[data.columns[1]][j])**2 for i in range(noRows) for j in range(noRows)]

例如:

noRows = 5
l = [i+j for i in range(noRows) for j in range(noRows)]
print(l)

输出将是:

[0, 1, 2, 3, 4, 1, 2, 3, 4, 5, 2, 3, 4, 5, 6, 3, 4, 5, 6, 7, 4, 5, 6, 7, 8]
Press any key to continue . . .

在你的情况下,与" i + j"相比,声明会更复杂。操作....但列表理解应该是正确的。