当在输入中给出键以决定排序是升序还是降序时,如何通过第一个值对元组列表进行排序?

问题描述 投票:0回答:1

我正在尝试根据输入中的“升序”或“降序”的顺序变量,按照第一个值的升序或降序对元组列表进行排序。我在下面尝试了类似这样的代码,但是没有用。您能帮我解决这个问题吗?

样本输入:[(2.0,array([1。,0.,0.]))),(1.0,array([0。,1.,0.])),(3.0,array([0。 ,0.,1.。]))]]

[代码]

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

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

    else:
        Ep=Ep.sort()

    return Ep
python sorting tuples eigenvalue eigenvector
1个回答
0
投票

您的输入Ep是一个元组列表。列表是可变的,这意味着它们在您应用函数时会更改,并且没有返回值。排序功能将仅自动查看元组的第一个元素。解决方案是删除Ep =,但请注意,这仅在输入Ep始终为元组列表的情况下有效。

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

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

    else:
        Ep.sort()

    return Ep
© www.soinside.com 2019 - 2024. All rights reserved.