我是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)
答案 0 :(得分:0)
您的代码中存在问题:
comment
你说你是Python的新手,所以让我通过使用numpy数组重写你的问题,让你指向NumPy库的方向来解决这个问题,这样可以避免在元素上循环就像你在这里做的一样。这就是你的代码使用NumPy的样子。
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 # original line
modelarray = array('i', [0]) * 30 # new line with extra comma
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)
你很可能不需要将它作为一个带有静态方法的类 - 请记住Python有一流的函数,所以你可以编写一个函数来完成这个,或者就像我在这里所做的那样,将代码编写为直接脚本。