我正在尝试根据输入中的“升序”或“降序”的顺序变量,按照第一个值的升序或降序对元组列表进行排序。我在下面尝试了类似这样的代码,但是没有用。您能帮我解决这个问题吗?
样本输入:[(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
您的输入Ep是一个元组列表。列表是可变的,这意味着它们在您应用函数时会更改,并且没有返回值。排序功能将仅自动查看元组的第一个元素。解决方案是删除Ep =
,但请注意,这仅在输入Ep始终为元组列表的情况下有效。
def sort_eigen_pairs(Ep, order = 'ascending'):
if(order=='descending'):
Ep.sort(reverse=True)
else:
Ep.sort()
return Ep