什么是python的解压元组?
这是丑陋的。 什么是更加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])
这被称为解包元组,也可以用于其他迭代(如列表)。 这是另一个例子(来自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]
请参阅https://docs.python.org/2/tutorial/controlflow.html#unpacking-argument-lists
dt = datetime.datetime(*t[:7])