【发布时间】:2015-08-03 11:04:58
【问题描述】:
您好,我正在尝试编写一个函数,该函数的输入是一个二维数组,设置类似于列表列表。数组的前两列是 ID 号,其余 12 列表示每个员工每月工作的小时数。我想找到每个员工的月度偏差,但是,我目前正在使用的代码有点不完善。它的输出是所有数字(包括 ID)之间差异的单个列表。我试图让输出成为二维数组中每一行的列表,其中 ID 号后跟每月的偏差(第一个月总是为零,因为没有前一个月可以从中减去):
[123, 34567, 0, 3, 4, 12, 13, 5, 8, 10, 11, 19, 2, 6]
我的代码目前如下:
def month_to_month(A):
X = []
for i in range(len(A)):
for j in range(len(A[i])):
X += [abs(A[i][j] - A[i][j-1])]
return X
函数首先迭代每一行,然后是每一列,找到列值之间的绝对差并将这些值添加到列表 X。但是,我需要帮助改进这一点,其中只减去每月值,并且输出将每个员工的数据作为单独的列表返回,如上例所示。我尝试使用递归来减去连续的列值,但效果不佳。我真的很感激任何意见!
【问题讨论】:
-
您能发布一个包含输入和所需输出的示例吗?
-
确定输入将是一个列表列表:[[123, 34567, 50, 53, 49, 61, 48, 53, 61, 71, 60, 79, 81, 87],. ..]
-
输出将是 [123, 34567, 0, 3, 4, 12, 13, 5, 8, 10, 11, 19, 2, 6]。所以它保留了内部列表的前两个元素,但显示了每个剩余值之间的偏差