@Em5

Проблема с return?

Имеется функция для разбивки данных.

import numpy as np

def разделить_данные(x, y, nrows=None):
    if nrows is not None:
        arr1, arr2 = x[:nrows], y[:nrows]
        arr3, arr4 = x[nrows:], y[nrows:]
        return arr1, arr2, arr3, arr4
    else:
        return x, y, None, None

x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = np.array([10, 20, 30, 40, 50, 60, 70, 80])

arr1, arr2, arr3, arr4 = разделить_данные(x, y).


Возвращаются 4 переменных - две из них (arr3, arr4) с NoneType.

Проблема в том, что мне не нужны переменные с None. Их банальное удаление не предлагать.

Текущее решение - возвращать кортеж:

Вместо arr1, arr2, arr3, arr4 = разделить_данные(x, y).
result = разделить_данные(x, y) # tuple

Но далее потребуется дополнительные строки кода для обработки кортежа, что совершенно не нужно.

Есть ли какое-нибудь элегантное решение проблемы вместо создания кортежа (словаря)?
  • Вопрос задан
  • 113 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
arr1, arr2, *_ = разделить_данные(x, y)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы