for循环中的timedelta对象问题(python)

for循环中的timedelta对象问题(python),python,pandas,string,datetime,Python,Pandas,String,Datetime,我有一个TimeDelta对象(比如T),它有输出 Timedelta('0 days 10:30:05.25') 我将它的条目连接到一个变量中 var = str(T._h) + str(':') + str(T._m) 产生所需输出的:'10:30' 但是,当我尝试在for循环中运行上述内容时,每次迭代都会更改T,var的输出是'0:0'。如果我在某个迭代中使用断点执行var的RHS上的数量,我确实会得到所需的输出。似乎for循环不允许将此数量保存到var?我之前已经设定了一个时间睡眠量

我有一个TimeDelta对象(比如
T
),它有输出

Timedelta('0 days 10:30:05.25')
我将它的条目连接到一个变量中

var = str(T._h) + str(':') + str(T._m)
产生所需输出的:
'10:30'

但是,当我尝试在for循环中运行上述内容时,每次迭代都会更改
T
,var的输出是
'0:0'
。如果我在某个迭代中使用断点执行
var
的RHS上的数量,我确实会得到所需的输出。似乎for循环不允许将此数量保存到
var
?我之前已经设定了一个时间睡眠量,但这没有帮助

如果您能在这方面提供帮助,我将不胜感激。 下面是一个示例,其中运行结束时的
t_str
将生成“0:0”,而使用断点将生成正确答案

import datetime
import pandas as pd 

T = pd.to_timedelta('10.55hours')

for ii in range(0, 3):

    T = T + datetime.timedelta(milliseconds=50)

    var = str(T._h) + str(':') + str(T._m)

    print(var) 

这将解决您的问题,并将产生所需的输出

import datetime
import pandas as pd

T = pd.to_timedelta('10.55hours')

for ii in range(0, 3):
    T = T + datetime.timedelta(milliseconds=50)
    print(T)
    var = "%d:%d:%d.%d" % (T._h, T._m, T._s, T._ms)
    print(var)
    # output : 10:33:0.150

请提供预期的价格。显示中间结果与您预期的不同之处。我们应该能够复制和粘贴一个连续的代码块,执行该文件,并再现您的问题以及跟踪问题点的输出。这让我们可以根据您的测试数据和所需的输出来测试我们的建议。@Prune使用mwe在上面进行了编辑。不完全是:您的代码不会产生任何结果。但是,请注意您的示例:如果您
print(T)
在更新后的任何地方,您都会评估未完成的对象,并再次获得预期的输出,而不是bug。很抱歉,我不知道为什么会发生这种情况。@Prune是的,在循环中的
var
上每次更新后,我都没有得到预期的输出。我在Python2.7上得到了“0:0”谢谢-您能告诉我如何将秒和毫秒包含在内吗?e、 例如,如果Timedelta看起来像
10:33:30.2500
谢谢,但这对我不起作用。。。我得到了
0:0:0.0
:(