2014-08-27 52 views
6

我与DateTime对象值的列表:Python中创建的值列表DateTime对象

values = ['2014', '08', '17', '18', '01', '05'] 

将它转换成int: values = map(int, values)

现在我需要创建newdate:

newdate = datetime.datetime(values[0], values[1], values[2], values[3], values[4], values[5]) 

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

+0

,你只需要在你的名单6个要素是什么? – 2014-08-27 10:01:30

+0

@PadraicCunningham yep – xijhoy 2014-08-27 10:03:57

回答

8

使用参数扩展:

newdate = datetime.datetime(*values) 

*expression语法在一个呼叫发生的expression输出作为序列,并且每个元件施加作为单独的参数。

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

结合映射int

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

演示:

>>> import datetime 
>>> values = ['2014', '08', '17', '18', '01', '05'] 
>>> datetime.datetime(*map(int, values)) 
datetime.datetime(2014, 8, 17, 18, 1, 5) 
+0

非常感谢!我第一次看到这个窍门。 – xijhoy 2014-08-27 10:03:07