Python 将数据[x]的值与数据[x+;1]相加
我有一个很长的数据列表,其中包含了“时间戳”和“数量”的列表。然而,列表中的时间戳并非全部按顺序排列(例如,时间戳[x]可以是140056,而时间戳[x+1]可以是560)。我不打算对它们进行排列,而是将timestamp[x]的值与timestamp[x+1]相加 ps:打印时,数量的排列顺序需要与列表中的顺序相同 我一直在使用以下代码处理此问题,其中timestamp是包含所有时间戳值的列表的名称:Python 将数据[x]的值与数据[x+;1]相加,python,python-3.x,Python,Python 3.x,我有一个很长的数据列表,其中包含了“时间戳”和“数量”的列表。然而,列表中的时间戳并非全部按顺序排列(例如,时间戳[x]可以是140056,而时间戳[x+1]可以是560)。我不打算对它们进行排列,而是将timestamp[x]的值与timestamp[x+1]相加 ps:打印时,数量的排列顺序需要与列表中的顺序相同 我一直在使用以下代码处理此问题,其中timestamp是包含所有时间戳值的列表的名称: for t in timestamp: previous = timestamp[t
for t in timestamp:
previous = timestamp[t-1]
increment = 0
if previous > timestamp[t]:
increment = previous
t += increment
delta = datetime.timedelta(0, (t - startTimeStamp) / 1000);
timeAtT = fileStartDate + (delta + startTime)
print("time at t=" + str(t) + " is: " + str(timeAtT));
previous = t
然而,它产生了TypeError:列表索引必须是整数,而不是元组。我可以知道如何解决这个问题吗,或者有其他方法来完成这个任务吗?谢谢 问题在于,您将
t
视为列表的索引。在您的例子中,t
保存列表的实际值,因此像timestamp[t]
这样的构造是无效的。您想要:
for t in range(len(timestamp)):
或者,如果同时需要索引和值:
for (t, value) in enumerate(timestamp):
当您对时间戳中的
进行时,您正在使t
接受时间戳中每个项目的值。但是,您尝试使用t
作为索引,以使成为先前的
。要执行此操作,请尝试:
for i, t, in enumerate(timestamp):
previous = timestamp[i]
current = t
还有,当你遇到这样的打字错误时,一定要试着打印出中间步骤,因此,您可以准确地看到出现了什么问题。对于时间戳中的t
这将迭代时间戳中的项目,而不是指示符。对不起,我忘了提到时间戳是包含所有时间戳值的列表的名称,您可以使用例如“print(timestamp[4])调用列表中的某些内容,它会给出数值。但是,现在我要做的是检查列表中的所有内容。向我们显示时间戳
的内容片段首先,您应该发布准确的错误消息-最重要的是,这将告诉我们哪个对时间戳的访问被中断。第二,似乎有几件事不对<时间戳中t的code>将使t
表示时间戳(例如1467374702.602727
),而不是索引(例如16
);执行timestamp[t]
或timestamp[t-1]
应该已经失败,除非您的列表很长且时间戳是小整数。如果它没有失败,其结果是不明智的startTimeStamp
和startTime
似乎有着奇怪的关联。您也没有修改列表,只是打印。等等,等等。。。