Python从值列表中创建日期时间对象

xij*_*hoy 6 python datetime python-2.7

我有一个包含datetime对象值的列表:

values = ['2014', '08', '17', '18', '01', '05']
Run Code Online (Sandbox Code Playgroud)

将其转换为int: values = map(int, values)

现在我需要创建newdate:

newdate = datetime.datetime(values[0], values[1], values[2], values[3], values[4], values[5])
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来做到这一点?

Mar*_*ers 15

使用参数扩展:

newdate = datetime.datetime(*values)
Run Code Online (Sandbox Code Playgroud)

*expression调用中的语法将输出expression作为序列,并将每个元素作为单独的参数应用.

这适用于长度在3到8个元素之间的任何序列,前提是前7个都是整数,第8个(如果存在)是datetime.tzinfo子类.

结合映射到int:

values = ['2014', '08', '17', '18', '01', '05']
newdate = datetime.datetime(*map(int, values))
Run Code Online (Sandbox Code Playgroud)

演示:

>>> import datetime
>>> values = ['2014', '08', '17', '18', '01', '05']
>>> datetime.datetime(*map(int, values))
datetime.datetime(2014, 8, 17, 18, 1, 5)
Run Code Online (Sandbox Code Playgroud)