Подтвердить что ты не робот

Что такое пифонический способ распаковки кортежей?

Это некрасиво. Какой еще питонический способ сделать это?

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

Ответ 1

Как правило, вы можете использовать синтаксис 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]