Как отсортировать список кортежей по первому значению, когда во входных данных дан ключ, чтобы решить, будет ли сортировка восходящей или нисходящей? - PullRequest
0 голосов
/ 07 октября 2019

Я пытаюсь отсортировать список кортежей по первому значению в порядке возрастания или убывания, основываясь на том, что переменная порядка на входе является «возрастающей» или «убывающей». я попробовал что-то вроде этого кода ниже, но не сработало. Можете ли вы помочь мне исправить это?

пример ввода: [(2.0, массив ([1., 0., 0.])), (1.0, массив ([0., 1., 0. ])), (3.0, массив ([0, 0, 1.]))]

[код]

def sort_eigen_pairs(Ep, order = 'ascending'):

    if(order=='descending'):
        Ep = Ep.sort(reverse=True)

    else:
        Ep=Ep.sort()

    return Ep

1 Ответ

0 голосов
/ 07 октября 2019

Ваш ввод Ep представляет собой список кортежей. Списки изменчивы, что означает, что они изменяются сами при применении функции и не имеют возвращаемого значения. Функция сортировки автоматически просматривает только первый элемент кортежа. Решение состоит в том, чтобы удалить Ep =, но имейте в виду, что это будет работать, только если вы введете Ep всегда список кортежей.

def sort_eigen_pairs(Ep, order = 'ascending'):

    if(order=='descending'):
        Ep.sort(reverse=True)

    else:
        Ep.sort()

    return Ep
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...