Примеры из нескольких заданий распаковки в учебнике выглядят примерно так:
import numpy as NP
M = NP.arange(5)
a, b, c, d, e = M
# so of course, a = 0, b = 1, etc.
M = NP.arange(20).reshape(5, 4) # numpy 5x4 array
a, b, c, d, e = M
# here, a = M[0,:], b = M[1,:], etc. (ie, a single row of M is assigned each to a through e)
(Мой вопрос не специфичен numpy
. Действительно, я бы предпочел чисто Python-решение.)
Для фрагмента кода, который я сейчас рассматриваю, я вижу две сложности в этом простом сценарии:
Я обычно не знаю форму M;и
Я хочу распаковать определенное количество предметов (определенно меньше, чем все предметы), и я хочу поместить остаток в один контейнер
Итак, вернемся к приведенному выше массиву 5x4, и я бы очень хотел назначить первые три строки M соответственно a, b и c (точно так же, как указано выше) и остальные строки (я не знаю, сколько их будет, только некоторое положительное целое число) в один контейнер, all_the_rest = []
.