[英]How to sort a list by number first in descending order and then by alphabet in ascending order
[英]How to sort a list of tuples by the first value when a key is given in the input to decide whether the sort is ascending or descending?
我正在尝试根据输入中的 order 变量为“升序”或“降序”,按升序或降序对元组列表进行排序。 我在下面尝试了类似这样的代码,但没有奏效。 你能帮我纠正一下吗?
样本输入:[(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 是一个元组列表。 列表是可变的,这意味着当您应用 function 并且没有返回值时,它们会自行改变。 排序 function 将自动只查看元组的第一个元素。 解决方案是删除Ep =
但请注意,这仅在您输入 Ep 始终是元组列表时才有效。
def sort_eigen_pairs(Ep, order = 'ascending'):
if(order=='descending'):
Ep.sort(reverse=True)
else:
Ep.sort()
return Ep
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.