繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM