当在输入中给出键以决定排序是升序还是降序时,如何按第一个值对元组列表进行排序?
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?
我正在尝试根据输入中的顺序变量 'ascending' 或 'descending' 按升序或降序对元组列表进行排序。我尝试了类似下面的代码,但没有用。你能帮我改正吗?
示例输入:[(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 是一个元组列表。列表是可变的,这意味着当您应用函数时它们会自行改变并且没有 return 值。排序函数将自动只查看元组的第一个元素。解决方案是删除 Ep =
但请注意,这仅在您输入 Ep 始终是元组列表时才有效。
def sort_eigen_pairs(Ep, order = 'ascending'):
if(order=='descending'):
Ep.sort(reverse=True)
else:
Ep.sort()
return Ep
我正在尝试根据输入中的顺序变量 'ascending' 或 'descending' 按升序或降序对元组列表进行排序。我尝试了类似下面的代码,但没有用。你能帮我改正吗?
示例输入:[(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 是一个元组列表。列表是可变的,这意味着当您应用函数时它们会自行改变并且没有 return 值。排序函数将自动只查看元组的第一个元素。解决方案是删除 Ep =
但请注意,这仅在您输入 Ep 始终是元组列表时才有效。
def sort_eigen_pairs(Ep, order = 'ascending'):
if(order=='descending'):
Ep.sort(reverse=True)
else:
Ep.sort()
return Ep