首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python3.x --根据另一个列表对一个列表进行排序,然后返回两个排序列表

Python3.x --根据另一个列表对一个列表进行排序,然后返回两个排序列表
EN

Stack Overflow用户
提问于 2020-04-04 06:33:43
回答 2查看 968关注 0票数 1

问题:,我想根据另一个列表对一个列表进行排序,然后返回两个排序列表。

我就是这样做的

代码语言:javascript
运行
复制
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?,但这并不是我想要的。

EN

Stack Overflow用户

回答已采纳

发布于 2020-04-04 07:32:21

可以将最后两行合并成一行吗?

是的。ordered_candidates从结果中排除了分数,因为您只选择带有[x for _, x in...]的候选人。这基本上只是从每个元组中选择第二个项目。此外,ordered_points只对点数进行排序。它们也都与reverse=True进行反向排序。

似乎您可以修改ordered_candidates,将这两个项都包含在(point, candidate)对中。

代码语言:javascript
运行
复制
>>> 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')]
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61024568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档