我认为这有一个简单的答案,但我无法理解它。 基本上我有一个数据列表是
的结果MySqlCommand.LastInsertedId
我试图创建一个新列表,将Data_list的第一个结果与时间戳联系起来。然后是第二个span = 2
datas = a['value'].split(",")
Data_list = [".".join(datas[i:i+span]) for i in range(0, len(datas), span)]
#Where a['value'] is a list
,第三个Date_time + deltatime
等
Date_time + 2* deltatime
目前我正在使用此代码
#Where T['value'] is a list
Date_time = datetime.strptime(T['value'], '%d-%m-%Y %H:%M:%S').time()
deltatime = 9e-5
打印
#################
DeltaTimeS = 9e-5
#################
Date_time = datetime.strptime(T['value'], '%d-%m-%Y %H:%M:%S').time()
print 'Date_time =',Date_time
def addSecs(tm, secs):
fulldate = datetime(100, 1, 1, tm.hour, tm.minute, tm.second)
fulldate = fulldate + timedelta(seconds=secs)
return fulldate.time()
#a = datetime.now().time()
a = Date_time
b = addSecs(a, DeltaTimeS)
#for a in Data['result'][:1]: #only print the first result in the list
span = 2
datas = a['value'].split(",")
Data_list = [".".join(datas[i:i+span]) for i in range(0, len(datas), span)]
for a in Data_list:
print a,b
包含所有数据和时间戳(仅更改一次)的列表,而不是每次都增加。任何帮助都会很棒 也许用" len"来计算第一个列表的大小。然后将其作为" b"的范围。但我如何让每次增加b?
答案 0 :(得分:1)
注意:您提供的代码不能用于重现您收到的输出。因此,我的回答是基于我从你的问题和很多即兴创作中所理解的。
每次打印的时间戳为b
,通过调用addSecs
进行一次评估。为什么期望它在上一个for
循环的每次迭代中都有不同的值?
如果要提前时间戳,则需要为每次循环迭代调用addSecs
并相应地调整第二个参数。实现此目的的一种简单方法是使用enumerate
获取循环迭代的计数器,并将DeltaTimeS
乘以此计数器:
from datetime import datetime, timedelta
T = {}
T['value'] = "29-12-2016 14:59:08"
a = {}
a['value'] = "1,2,3,4,5,6,7,8"
DeltaTimeS = 9e-5
Date_time = datetime.strptime(T['value'], '%d-%m-%Y %H:%M:%S').time()
def addSecs(tm, secs):
fulldate = datetime(100, 1, 1, tm.hour, tm.minute, tm.second)
fulldate = fulldate + timedelta(seconds=secs)
return fulldate.time()
span = 2
datas = a['value'].split(",")
Data_list = [".".join(datas[i:i+span]) for i in range(0, len(datas), span)]
for i, x in enumerate(Data_list):
print x, addSecs(Date_time, i * DeltaTimeS)
结果是:
1.2 14:59:08
3.4 14:59:08.000090
5.6 14:59:08.000180
7.8 14:59:08.000270
答案 1 :(得分:0)
建议您使用enumerate()
,例如:
import datetime as dt
# inputs
values = [
0.02027,
0.01549,
0.00559,
-0.00760,
-0.02439,
]
start_time = dt.datetime.now()
delta_time_seconds = 9e-5
format = '%d-%m-%Y %H:%M:%S'
# build a list of data, timestamp tuples
list_of_tuples = [(value, (start_time +
dt.timedelta(seconds=i*delta_time_seconds)
).strftime(format))
for i, value in enumerate(values)]
# show what we got
for data_point in list_of_tuples:
print(data_point[0], data_point[1])