Я новичок в Python и пишу скрипт, чтобы сэкономить время для данных, полученных из алгоритма
В скрипте у меня есть алгоритм, который принимает несколько параметров и возвращает идентификатор данных, которые онобнаружено.Ниже приведены несколько его выходных данных:
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
Из вышеприведенного вывода видно, что с 1-й попытки он обнаружил данные с идентификатором 0
.Во 2-й попытке он обнаружил данные с идентификатором 1
, поэтому общий идентификатор данных обнаружил 0, 1
.В 4-й попытке он обнаружил 2
id.Это продолжается, пока работает в while True
.Сверху можно сказать, что период времени для 0
id равен 8 sec
, для 1
период времени равен 4 sec
, а для 2
это 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 идентификатор данных.Как только поступают 2-ые данные, они не записывают время для этого.
Может кто-нибудь предложить хороший способ написать это.Основная цель - сохранить значения периода времени для каждого идентификатора данных.Пожалуйста помоги.Спасибо