datetime.datetime对象的总和给出了错误TypeError:+:'datetime.datetime'和'datetime.datetime'的不支持的操作数类型

mon*_*top 3 python datetime sum list timedelta

我正在尝试使用以下内容对datetime.datetime对象列表求和:

from datetime import datetime, timedelta
d= [datetime.datetime(2013, 5, 1, 9, 31, 24), datetime.datetime(2013, 6, 11, 17, 22, 18), datetime.datetime(2013, 4, 3, 16, 6, 59)]

sum_d = sum(d, timedelta())
Run Code Online (Sandbox Code Playgroud)

我收到错误:

TypeError: unsupported operand type(s) for +: 'datetime.datetime' and 'datetime.datetime'

任何想法我做错了什么或如何总结这个列表?

我想得到我正在考虑的这个列表的平均值:

 d_avg = sum(d, timedelta()) / len(d)
Run Code Online (Sandbox Code Playgroud)

谢谢!

Vee*_*rac 12

那只是因为你无法增加时间.您可以添加时间增量,但不能添加时间增量.

我的意思是,是3 1995年8月+ 19 月454?这没有意义.您可以添加第0年的距离,但这与添加日期本身不同.

你希望从这个计算得到什么?


如果你希望找到平均值(为什么?),你将不得不使用较不直接的路线

import datetime

d = [datetime.datetime(2013, 5, 1, 9, 31, 24), datetime.datetime(2013, 6, 11, 17, 22, 18), datetime.datetime(2013, 4, 3, 16, 6, 59)]

d[0] + sum((d_i-d[0] for d_i in d), datetime.timedelta(0)) / len(d)
#>>> datetime.datetime(2013, 5, 5, 22, 20, 13, 666667)
Run Code Online (Sandbox Code Playgroud)

这个发现从偏移的总和d[0],是指那些,然后添加回到偏移.