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

Распаковать список переменных

У меня есть список:

row = ["Title", "url", 33, "title2", "keyword"]

Есть ли более pythonic способ распаковать эти значения, например:

title, url, price, title2, keyword = row[0], row[1], row[2], row[3], row[4]
4b9b3361

Ответ 1

Что-то вроде этого?

>>> row = ["Title", "url", 33, "title2", "keyword"]
>>> title, url, price, title2, keyword = row

Также и для записи обратите внимание, что ваш пример завершится с индексом IndexError (списки Python основаны на нуле).

EDIT: вышеупомянутая записка была написана до того, как был установлен пример OP...

Ответ 2

Фактически, python автоматически распаковывает контейнеры, когда переменные разделяются запятыми. Это присваивает каждому элементу в row переменные слева:

title, url, price, title2, keyword = row

После этого назначения title имеет значение "Заголовок", price имеет значение 33 и т.д.

Ответ 3

Вы также можете легко распаковать его в класс или namedtuple:

from collections import namedtuple

row = ["Title", "url", 33, "title2", "keyword"]

Entry = namedtuple("Entry", "title url price title2 keyword")
new_entry  = Entry(*row)
print(new_entry.title) # Title

Ответ 4

Также, если вам нужно всего несколько первых переменных, в Python 3 вы можете использовать:

row = ["Title", "url", 33, "title2", "keyword"]
title, url, *_ = row

Это хороший способ извлечь несколько первых значений без использования явных индексов