【发布时间】:2012-07-17 07:59:56
【问题描述】:
目前我的代码如下
A = [matrix_x[i][:n] for i in xrange(0, n)]
B = [matrix_x[i][n:] for i in xrange(0, n)]
C = [matrix_x[i+n][:n] for i in xrange(0, n)]
D = [matrix_x[i+n][n:] for i in xrange(0, n)]
有没有更好的方法来做到这一点,因为我不断地在同一个 xrange 上循环。在这种情况下,最好不要使用列表推导,而是在单个 for 循环中将值附加到每个列表。
A,B,C,D = [],[],[],[]
for i in xrange(0,n):
A.append(matrix_x[i][:n])
B.append(matrix_x[i][n:])
... etc
第二种方式对我来说似乎更有效。什么方式会更“pythonic”,或者还有其他我没有想到的方式
【问题讨论】:
-
我认为解释器足够聪明,可以优化这个例子。你应该试着计时。
-
对于使用矩阵,您是否考虑过 numpy?
-
@Mark - 我有,但在这种情况下我想这样做