Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为两个列表编制索引并比较其值_Python_Python 2.7_Indexing - Fatal编程技术网

Python 为两个列表编制索引并比较其值

Python 为两个列表编制索引并比较其值,python,python-2.7,indexing,Python,Python 2.7,Indexing,我正在做一个日期时间验证项目。具体来说,确保每个间隔都有一个日期时间。如果间隔中缺少datetime,我会将缺少的值添加到时间戳对象列表中 当我运行下面的代码时,它会将大多数日期时间标记为缺失,即使它们没有。我认为这是一个索引问题。我哪里做错了 代码: 导入日期时间 _RRATE=[0,1,0]#以[分钟、小时、天]为单位的数据刷新率 LOCALE=“西雅图”#单元站点的位置 timesList=[]#初始化时间戳列表并填写错误 #类Timestamp允许我们将单个时间戳的所有数据存储在一个对象

我正在做一个日期时间验证项目。具体来说,确保每个间隔都有一个日期时间。如果间隔中缺少datetime,我会将缺少的值添加到时间戳对象列表中

当我运行下面的代码时,它会将大多数日期时间标记为缺失,即使它们没有。我认为这是一个索引问题。我哪里做错了

代码:

导入日期时间
_RRATE=[0,1,0]#以[分钟、小时、天]为单位的数据刷新率
LOCALE=“西雅图”#单元站点的位置
timesList=[]#初始化时间戳列表并填写错误
#类Timestamp允许我们将单个时间戳的所有数据存储在一个对象中。
类时间戳:
x=1#为每个新的时间戳对象提供数据集的唯一标识符
丢失邮票=0
定义初始化(self、datetime、location、errorMessage):
self.timestamp=datetime
self.location=位置
self.error=errorMessage
self.UID=Timestamp.x
时间戳.x+=1
timesList.append(self)
def updateError(self,newError):
self.error=newError
定义(自我):#使打印时间列表看起来整洁
返回str(self.UID)+“”+str(self.timestamp)+“,“+self.location+”,“+self.error”
def副本(索引):
圣殿骑士=[]
对于时间列表中的时间戳:
templast.append(timestamp.timestamp)
如果tempList中的datetimes[索引]:
时间戳(日期时间[索引],区域设置,“重复”)
返回真值
其他:
返回错误
def离地(索引):
对于timesList中的timestampObj:
如果(timestampObj.timestamp>datetimes[index]):
时间戳(日期时间[索引],区域设置,“不合适”)
返回真值
其他:
返回错误
def丢失时间戳(datetimeObj):
Timestamp.missingStamps=0
如果dateAdd(timesList[len(timesList)-1]。timestamp)0:
errorCount+=Timestamp.missingStamps
Timestamp.missingStamps=0
其他:
时间戳(日期时间[i],区域设置,“无错误”)
对于时间列表中的元素:
打印元素
b=日期时间。日期时间(2018,7,20)
c=日期时间。日期时间(2018,7,20,1)
d=日期时间。日期时间(2018,7,20,2)
e=日期时间。日期时间(2018,7,20,7)
f=日期时间。日期时间(2018,7,20,7)
g=日期时间。日期时间(2018,7,20,9)
h=日期时间。日期时间(2018,7,20,16)
i=日期时间。日期时间(2018,7,20,16)
j=日期时间。日期时间(2018,7,20,9)
日期时间=[b,c,d,e,f,g,h,i,j]
main()

根据@Prune在问题注释中的规定,您应该对问题进行更完整的描述

也就是说,我运行了您的代码,从我得到的输出来看,问题似乎出在主函数中控制流语句的逻辑中,具体来说:

elif (missingTimestamp(datetimes[i]))>0:
        errorCount+=Timestamp.missingStamps
        Timestamp.missingStamps = 0
当遇到丢失的时间戳时,例如在
d
e
之间时,
missingTimestamp
函数将填充小于等于
e
的值,但不包括
e
,并且在函数返回后控制块不会处理此问题。然后它移动到
f
,并且
e
未放置在全局
timesList
变量中

该问题的一个简单解决方案是将
elif
块更改为:

        elif (missingTimestamp(datetimes[i]))>0:
        errorCount+=Timestamp.missingStamps
        Timestamp.missingStamps = 0
        # Line below to add current value to global timeList variable
        Timestamp(datetimes[i],LOCALE, "no error")

欢迎来到StackOverflow。请按照您创建此帐户时的建议,阅读并遵循帮助文档中的发布指南。适用于这里。在您发布MCVE代码并准确描述问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中,并重现您描述的问题。
        elif (missingTimestamp(datetimes[i]))>0:
        errorCount+=Timestamp.missingStamps
        Timestamp.missingStamps = 0
        # Line below to add current value to global timeList variable
        Timestamp(datetimes[i],LOCALE, "no error")