问题:,我想根据另一个列表对一个列表进行排序,然后返回两个排序列表。
我就是这样做的
points = [4,7,3,2,7]
candidates = ['a', 'b', 'c', 'd', 'e']
ordered_candidates = [x for _, x in sorted(zip(points, candidates), reverse=True)]
ordered_points = sorted(points, reverse=True)问题:是否有可能将最后两行合并成一行?
我发现了一个问题:Sorting list based on values from another list?,但这并不是我想要的。
发布于 2020-04-04 07:32:21
可以将最后两行合并成一行吗?
是的。ordered_candidates从结果中排除了分数,因为您只选择带有[x for _, x in...]的候选人。这基本上只是从每个元组中选择第二个项目。此外,ordered_points只对点数进行排序。它们也都与reverse=True进行反向排序。
似乎您可以修改ordered_candidates,将这两个项都包含在(point, candidate)对中。
>>> points = [4,7,3,2,7]
>>> candidates = ['a', 'b', 'c', 'd', 'e']
>>> sorted(zip(points, candidates), reverse=True)
[(7, 'e'), (7, 'b'), (4, 'a'), (3, 'c'), (2, 'd')]https://stackoverflow.com/questions/61024568
复制相似问题