我有这样的代码:
nList = [[[0,0,0],[100420,0,623400]],\
[[]],\
[[100043,1324000,123240]],\
[[0,0,543],[3002340,443000,34300],[334000,4043400,7342],[0,0,134020]]
import math
prevX, prevY, prevT = 0, 0, 0
#Entry point
for traceIndex in range(0, len(nList)):
print 'trace: ' + str(traceIndex+1)
trace = nList[traceIndex]
for pointIndex in range(0, len(trace)):
point = trace[pointIndex]
if len(point)>0:
tempX, tempY, tempT = point[0], point[1], point[2]
if pointIndex != 0:
#calculate time difference here
timeDiff = calculateTime (tempT,prevT)
基本上,nList
在每个\
之前都有子列表称为跟踪,每个跟踪都有三个元素的点。例如,nList[0][0]
产生记录道1,点1=[0,0,0]
。point=[x-coordinate, y-coordinate, time]
。我计算了每条轨迹中每个点的时间差。现在我需要总结不同轨迹的时间差并打印出来,以便:
trace: 1
623400
trace: 2
trace: 3
trace: 4
187393
nList由称为“trace”的子列表组成,每个“trace”都有一个或多个点和3个元素,[x,y,t]。例如,trace1有两个点,即trace1point1=[0,0,0]和trace1point2=[100420,0623400]。timeDiff计算t2和t1之间的差值。对于trace1,这将是(623400-0)。trace4与trace1相比有更多的点,timeDiff将用于带有1=<N=<4
,(34300-543),(7342-34300)和(134020-7342)的单个trace4pointN。我想写一个程序,在每个记录道中获取所有的时间差,并以产生上面提到的输出的方式对它们进行求和。你知道吗
使用zip和直接在元素上迭代可以更容易地解决这个问题,从而避免在变量中存储太多数据。根据示例输出,您需要每个时间点之间的绝对差值:
输出:
这应该管用。基本上,我通过提取轨迹中每个点的时间来形成一个列表。然后形成一个相同的重复列表。从一个列表中删除第一个元素,从另一个列表中删除最后一个元素。然后减去列表。将元素添加到结果列表中会得到输出。你知道吗
相关问题 更多 >
编程相关推荐