#python #matlab
Вопрос:
Я известный пользователь MATLAB, переходящий на python.
В MATLAB есть возможность подавлять некоторые выходные данные функции с несколькими типами возврата. Если я хочу найти количество строк в матрице A, я мог бы сделать [rows, ~] = size(A)
это в MATLAB. Здесь size
есть функция, которая возвращает rows, columns
A
значение в виде массива. Использование ~
подавляет вывод columns
.
Я ищу аналогичный обходной путь в python3. Скажем, у меня есть функция foo
,
def foo(a, b, c):
return a, b, c
Если я это сделаю, x, y, z = foo(1, 2, 3)
то все будет нормально. Аналогично, x = foo(1, 2, 3)
хорошо работает, пока A
является кортежем. Но, x, y = foo(1, 2, 3)
показывает следующую ошибку,
ValueError: too many values to unpack (expected 2)
Комментарии:
1.
x, *y = foo(1, 2, 3)
вставит1
x и(2,3)
вy
, обычно первый подход, о котором вы упомянули, — это то, как это происходит. Одноразовая переменная определяется таким образом, как_
и двигаться дальше.