基于另一个列表的排序索引对列表进行排序[重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我有两个列表,我想以相反的顺序对它们中的一个(scores)进行排序,并获得相应的索引以排序第二个(section_id)。

例如:

section_id = [5, 6, 8, 14]
scores = [4, 11, 13, 7]

新名单将是:

sorted_reverse_scores = [13, 11, 7, 4]
sorted_section_id = [8, 6, 14, 5]

你知道如何实现这个目标吗?

目前我唯一做的是:

sorted_reverse_scores = section_id.sort(reverse=True)
python python-3.x
1个回答
1
投票
section_id  = [5, 6, 8, 14]
scores  = [4, 11, 13, 7]
sorted_reverse_scores =[]
sorted_section_id =[]
for i in sorted(zip(scores,section_id),reverse=True):
  sorted_reverse_scores.append(i[0])
  sorted_section_id.append(i[1])
print(sorted_reverse_scores)
print(sorted_section_id)

产量

[13, 11, 7, 4] [8, 6, 14, 5]

© www.soinside.com 2019 - 2024. All rights reserved.