【发布时间】:2021-02-11 18:09:32
【问题描述】:
我有一个 SECONDS.MICROSECONDS CLOCK_MONOTONIC 时间戳列表,如下所示:
5795.944152
5795.952708
5795.952708
5795.960820
5795.960820
5795.969092
5795.969092
5795.977502
5795.977502
5795.986061
5795.986061
5795.994075
5795.994075
5796.002382
5796.002382
5796.010860
5796.010860
5796.019241
5796.019241
5796.027452
5796.027452
5796.035709
5796.035709
5796.044158
5796.044158
5796.052453
5796.052453
5796.060785
5796.060785
5796.069053
它们各自代表要执行的特定操作。
我需要做的,最好是在 python 中,但编程语言并不重要,是加快动作 - 比如能够在这个列表中进行 2X、3X 等速度增量。所以这些值需要以这样的方式减少,以匹配 ?X 的速度增量。
我想过将每个时间戳除以我想要的速度数,但似乎这样行不通。
【问题讨论】:
-
"但它似乎不能这样工作。"请澄清它在多大程度上不起作用。你有错误吗?会不会发生意想不到的事情?就此而言,你是怎么做到的?你能提供一个minimal reproducible example吗?
-
听起来您可能想为每个时间 T 计算
T0 + (T - T0)/speedupfactor,其中 T0 是初始时间(您指定的时间或列表中的第一次或其他时间)。 -
@RobertDodier 是的,这正是需要做的,就像
for x in timestamps: increasedtimestamp = float(t0) + (float(x) - float(t0))/speed speedtimestamps.append(round(Decimal(increasedtimestamp), 6))一样简单。谢谢! -
太好了,很高兴听到。通过列表理解,您可能对更“Pythonic”的方式感兴趣。比如:
speedtimestamps = [(T0 + (T - T0)/speed for T in timestamps]
标签: python-3.x math time