这是我的代码片段
if( start_city == end_city ):
is_rnd_trip = 1
for i in range(1,len(keylist)):
prev_leg = parse(d[keylist[i-1]][5])
current_leg = parse(d[keylist[i]][4])
delta = relativedelta(current_leg, prev_leg)
print
print delta
if(delta > max_delta):
max_delta = delta
print max_delta
indx_of_max_delta = i
end_city = d[keylist[indx_of_max_delta]][1]
print '\nindx_of_max_delta: ',indx_of_max_delta
print start_city,end_city输出:
relativedelta(hours=+18, minutes=+10)
relativedelta(hours=+18, minutes=+10)
relativedelta(days=+10, hours=+15, minutes=+45)
relativedelta(days=+10, hours=+15, minutes=+45)
relativedelta(hours=+20, minutes=+50)
indx_of_max_delta: 2
SEA BLR但是,如果我注释掉打印行,我会得到不同的输出。我不知道哪里出了问题。在我注释出打印行之前,我得到的输出是正确的,也是我所期望的。我正在使用Spyder编辑器(如果有帮助的话)
if( start_city == end_city ):
is_rnd_trip = 1
for i in range(1,len(keylist)):
prev_leg = parse(d[keylist[i-1]][5])
current_leg = parse(d[keylist[i]][4])
delta = relativedelta(current_leg, prev_leg)
print
#print delta
if(delta > max_delta):
max_delta = delta
#print max_delta
indx_of_max_delta = i
end_city = d[keylist[indx_of_max_delta]][1]
print '\nindx_of_max_delta: ',indx_of_max_delta
print start_city,end_city输出
indx_of_max_delta: 3
SEA DXB发布于 2014-06-04 04:39:37
在Python中,迭代器就像一个列表,但它只是一个数据流。一旦它流经你的程序,它就消失了。它是非常有效的,但是使用起来会很混乱,正如你已经发现的。
我建议将其转换为列表,以便您可以将其打印出来并进行处理:
delta = list( relativedelta(current_leg, prev_leg) )https://stackoverflow.com/questions/24022087
复制相似问题