我有一个包含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 :(得分:14)
使用参数扩展:
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)