什么是解包元组的pythonic方法?

时间:2010-02-10 16:14:50

标签: python tuples

这太丑了。什么是Pythonic的方式呢?

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])

2 个答案:

答案 0 :(得分:140)

通常,您可以使用func(*tuple)语法。你甚至可以传递元组的一部分,这就像你在这里尝试做的那样:

t = (2010, 10, 2, 11, 4, 0, 2, 41, 0)
dt = datetime.datetime(*t[0:7])

这称为解包一个元组,也可以用于其他迭代(例如列表)。这是另一个例子(来自Python tutorial):

>>> 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]

答案 1 :(得分:12)