关于python:解包元组的pythonic方法是什么?

What is the pythonic way to unpack tuples?

本问题已经有最佳答案,请猛点这里访问。

这太难看了。有什么比Python更刺激的方法?

1
2
3
4
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)语法。您甚至可以传递元组的一部分,这看起来就像您在这里要做的:

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

这称为解包元组,也可以用于其他iterable(如列表)。下面是另一个示例(来自Python教程):

1
2
3
4
5
>>> 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解包参数列表

1
 dt = datetime.datetime(*t[:7])