这看起来不太好。有没有更符合Python风格的方法?
import datetime
t= (2010, 10, 2, 11, 4, 0, 2, 41, 0)
dt = datetime.datetime(t[0], t[1], t[2], t[3], t[4], t[5], t[6])
这看起来不太好。有没有更符合Python风格的方法?
import datetime
t= (2010, 10, 2, 11, 4, 0, 2, 41, 0)
dt = datetime.datetime(t[0], t[1], t[2], t[3], t[4], t[5], t[6])
func(* tuple)
语法。您甚至可以传递元组的一部分,这似乎是您在此处尝试做的事情。t = (2010, 10, 2, 11, 4, 0, 2, 41, 0)
dt = datetime.datetime(*t[0:7])
这被称为元组解包(unpacking),也可以用于其他可迭代对象(如列表)。以下是另一个示例(来自Python教程):
>>> range(3, 6) # normal call with separate arguments
[3, 4, 5]
>>> args = [3, 6]
>>> range(*args) # call with arguments unpacked from a list
[3, 4, 5]
x, y, z = *(1, 2, 3)
这样的语句也可以正常工作,不会出错(应该早就实现了)。 - Nearoomy_tuple = ("B", "C"); "%s %s %s" % ("A", *my_tuple)
? - Dannid"{} {} {}".format("A", *my_tuple)
可以解决问题。 - Dannid dt = datetime.datetime(*t[:7])