【发布时间】:2021-06-13 05:38:05
【问题描述】:
我在下面的列表中填满了矩阵:
incSplitList = [numpy.zeros((4, 4))] * nmbDurations
在我开始使用列表之前看起来像这样:
incSplit = numpy.zeros((4, 4))
incSplit2 = numpy.zeros((4, 4))
incSplit3 = numpy.zeros((4, 4))
incSplit4 = numpy.zeros((4, 4))
incSplit5 = numpy.zeros((4, 4))
现在我需要使用 incSplitList 对以下代码进行压缩和 Python 化:
tmpValue += incSplit[x][y]
tmpValue2 += incSplit2[x][y]
tmpValue3 += incSplit3[x][y]
tmpValue4 += incSplit4[x][y]
tmpValue5 += incSplit4[x][y]
我也在使用新的 tmpValueList:
tmpValueList = [0] * nmbDurations
但是我很困惑如何遍历 incSplitList,同时还访问矩阵中的元素 x 和 y,如上面的代码: 所以是的,长话短说: 下面的代码如何使用列表 incSplitList 和 tmpValueList 进行压缩?
tmpValue += incSplit[x][y]
tmpValue2 += incSplit2[x][y]
tmpValue3 += incSplit3[x][y]
tmpValue4 += incSplit4[x][y]
tmpValue5 += incSplit4[x][y]
【问题讨论】:
-
incSplitListcreated with a list*是一个只有一个数组的列表,但对它有多个引用。使用*创建列表很棘手,而且经常会产生意想不到的结果。 -
索引二维数组最好使用
incSplit[x,y]。[x][y]方法(有时)有效,但更典型的是列表索引。如果您创建了arr=np.zeros((5,4,4)),您可以跳过所有这些临时名称和迭代。 -
看来你只是想
sum(incSplitList)...