我有一个要构造时间段的日期时间列表。换句话说,将[t0, t1, ... tn]变成[(t0,t1),(t1,t2),...,(tn-1, tn)]。我这样做是这样的:

# start by sorting list of datetimes
mdtimes.sort()
# construct tuples which represent possible start and end dates

# left edges
dtg0 = [x for x in mdtimes]
dtg0.pop()

# right edges
dtg1 = [x for x in mdtimes]
dtg1.reverse()
dtg1.pop()
dtg1.sort()

dtsegs = zip(dtg0,dtg1)

问题...
  • 以这种方式创建它们后,是否可以指望任何(tn-1,tn)的tn-1
  • 复制带有列表推导的原始mdtimes列表是一种好习惯吗?如果没有,应该怎么做?
  • 构造这些元组的目的是对其进行迭代,并使用tn-1tn分割数据集。这是合理的方法吗? IE。
    datasegment = [x for x in bigdata if ( (x['datetime'] > tleft) and (x['datetime'] < tright))]
    

  • 谢谢

    最佳答案

  • 元组顺序是在将值插入元组时的顺序。他们不会像我想的那样被排序。 zip将再次保留您插入值的顺序。
  • 这是一种可接受的方法,但是我有2个替代建议:使用copy模块或使用dtg1 = mdtimes[:]
  • 听起来很合理。
  • 关于python - 我可以指望保留在Python元组中的订单吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4326553/

    10-12 21:09