我是Python的初学者,我正在编写一个脚本,以节省从算法接收数据的时间。
在脚本中,我有一个算法,它只接受很少的参数,并返回它检测到的数据的ID。以下是它的输出:
S.No Data Id Time
1 0 2018-11-16 15:00:00
2 0, 1 2018-11-16 15:00:02
3 0, 1 2018-11-16 15:00:03
4 0, 1, 2 2018-11-16 15:00:05
5 0, 1, 2 2018-11-16 15:00:06
6 0, 2 2018-11-16 15:00:08
从上面的输出可以看出,在第一次尝试时,它检测到ID的数据
0
. 在第二次尝试中,它检测到ID的数据
1
所以检测到的总数据ID
0, 1
. 在第四次尝试中,它检测到
2
身份证。这是一直在进行,因为它正在运行
while True
. 从上面我们可以说
零
身份证是
8 sec
,为了
一
时间是
4 sec
为了
二
它是
3 sec
. 我需要计算这些时间段。为此,我写了以下代码:
data_dict = {} # To store value of time for each data id
data_dict_sec = {} # To store value of seconds for each data id
data = amc_data_retention() # data contains the data id
for dataID in data.items():
if run_once:
run_once = False
data_dict[dataID] = time.time()
data_dict_sec[dataID] = 0
for dataID in data.items():
if dataID in data_dict:
sec = time.time() - data_dict[dataID]
data_dict_sec[dataID] += sec
data_dict[dataID] = time.time()
else:
print("New data detected")
第一
for
循环运行一次,它节省了
dataID
在里面
dict
. 在下一个for循环中,该时间与当前时间相减,总秒数保存在
data_dict_sec
. 在第一次迭代中,总秒数为0,但从下一次迭代开始,它将开始保存正确的秒数。只有在有1个数据ID的情况下,这才可以正常工作。第2个数据一出现,它就不会记录时间。
有人能推荐一种写这篇文章的好方法吗?主要目标是保存每个数据ID的时间段值。请提供帮助。谢谢