Подавление вывода в нескольких функциях возвращаемого типа в python3

#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 , обычно первый подход, о котором вы упомянули, — это то, как это происходит. Одноразовая переменная определяется таким образом, как _ и двигаться дальше.