如何基于其他2个列表的排序方式对1个列表进行排序?

我有两个包含浮点值的列表:

mean_fall_1 = [statistics.mean(d) for d in fall_1_gpa]
stdev_fall_1 = [statistics.stdev(d) for d in fall_1_gpa]

哪里:

fall_1_gpa = [[mean(sub_list) for sub_list in list] for list in fall1_grades]

此外,我还有一个字符串列表:

combination_fall_1 = [['CS105','MATH101','ENG101','GER'],['CS105','MATH101','GER','GER']]

我想做的是找到mean_fall_1和stdev_fall_1的最佳组合并列出它们。我要做的是:

mean_fall_1, stdev_fall_1 = sorted(
        list(zip(*(zip(mean_fall_1, stdev_fall_1)))))
    mean_fall_1, stdev_fall_1 = (list(t) for t in sorted(list(zip(*(zip(mean_fall_1, stdev_fall_1))))))

当我打印时(stdev然后是意思),我得到以下结果:

[0.2821718924791329, 0.33945301919611576]
[3.419960107803423, 2.9687393162393163]

但是我希望根据此顺序对combination_fall_1列表进行相应的排序,以便使我能够向用户显示课程的组合,而不仅仅是mean和stdev。我尝试这样做:

mean_fall_1, stdev_fall_1,combination_fall_1  = sorted(
            list(zip(*(zip(mean_fall_1, stdev_fall_1,combination_fall_1 )))))
        mean_fall_1, stdev_fall_1 = (list(t) for t in sorted(list(zip(*(zip(mean_fall_1, stdev_fall_1,combination_fall_1 ))))))

但我不断收到此错误:

TypeError:“列表”和“浮动”实例之间不支持“ <”

还有另一种方法可以根据其他2个方法对combination_fall_1列表进行排序?还是我错过了什么?

评论