【发布时间】:2015-10-18 04:47:41
【问题描述】:
我是 python 新手,我的代码遇到了问题。我正在尝试减去两个数组,其中一个附加了新值,但无法让它打印带有减去值的新数组。我尝试修复它给我的值只是 for 循环的附加值。我应该使用 lambda 来尝试减去这两个吗?
from array import *
班级温度:
@staticmethod
def Model():
days = array('i',[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30])
recordedtemp = array('i', [63,62,69,76,70,68,71,71,73,74,75,78,77,77,76,76,77,78,78,82,82,82,81,82,82,76,75,81,85,89])
print("Temperature:")
for i in days:
modelarray = array('i'[0]) * 30
modeltemp = float(0.5904) * i + float(67.048)
rounding = int(round(modeltemp, 2))
modelarray.append(rounding)
print(modeltemp)
continue
print("Error:")
a = list(map(lambda x,y: x - y, recordedtemp, modelarray))
print(a)
【问题讨论】:
-
您能否详细解释一下您希望得到的结果是什么?您在每次通过循环时都在重新创建
modelarray值,因此它总是有 31 个值(原来的 30 个零,加上一个附加值)。您是否想用新的值替换零值?您稍后的map调用将忽略任何附加值,因为当它给出的最短的可迭代对象用完时它会停止映射。最后一个问题:您是否考虑过使用numpy而不是array?numpy专为数值计算而设计。 -
感谢您接受我的回答,请查看我在此处发布的额外代码。看起来你来自 Java 或 C# 之类的东西,所有东西都必须是一个类。静态方法在 Python 中很少使用,因为我们有一流的函数。另外,如果你在做科学类的东西,看看 NumPy 让你的生活变得多么容易。