Что pythonic путь состоит в том, чтобы распаковать кортежи? [дубликат]

Этот вопрос уже имеет ответ здесь:

Это ужасно. Каково больше 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])
100
задан user132262 17 August 2014 в 17:08
поделиться

2 ответа

Вообще, вы можете использовать синтаксис 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]
143
ответ дан 24 November 2019 в 04:53
поделиться
12
ответ дан 24 November 2019 в 04:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: