我有一个嵌套列表,其中包含不同的变量。我试图检查两个连续项目之间的差异值,如果条件匹配,将这些项目组合在一起。Python中的列表中的值差异比较
即
Item 1 happened on 1-6-2012 1 pm
Item 2 happened on 1-6-2012 4 pm
Item 3 happened on 1-6-2012 6 pm
Item 4 happened on 3-6-2012 5 pm
Item 5 happened on 5-6-2012 5 pm
欲组具有间隙小于24小时的项目。在这种情况下,项目1,2和3属于一个组,项目4属于一个组,项目5属于另一个组。我试了下面的代码:
Time = []
All_Traps = []
Traps = []
Dic_Traps = defaultdict(list)
Traps_CSV = csv.reader(open("D:/Users/d774911/Desktop/Telstra Internship/Working files/Traps_Generic_Features.csv"))
for rows in Traps_CSV:
All_Traps.append(rows)
All_Traps.sort(key=lambda x: x[9])
for length in xrange(len(All_Traps)):
if length == (len(All_Traps) - 1):
break
Node_Name_1 = All_Traps[length][2]
Node_Name_2 = All_Traps[length + 1][2]
Event_Type_1 = All_Traps[length][5]
Event_Type_2 = All_Traps[length + 1][5]
Time_1 = All_Traps[length][9]
Time_2 = All_Traps[length + 1][9]
Difference = datetime.strptime(Time_2[0:19], '%Y-%m-%dT%H:%M:%S') - datetime.strptime(Time_1[0:19], '%Y-%m-%dT%H:%M:%S')
if Node_Name_1 == Node_Name_2 and \
Event_Type_1 == Event_Type_2 and \
float(Difference.seconds)/(60*60) < 24:
Dic_Traps[length].append(All_Traps[Length])
但我错过了一些项目。想法?
这些项目是否已经排序?另外一些示例数据可能会有帮助基本上 - 转换为'datetime'对象 - 并比较'timedelta' – gabhijit
@ user2566898如果他们帮助你,请接受答案。 –