如何根据已知订单重新排序列表? [重复]

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

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

在python3中,如果我有一个列表[a,b,c,d,e],它的排名顺序[1,4,2,2,0]与元素cd共享相同的顺序。我怎样才能获得新的列表[e,a,c,d,b]

python python-3.x sorting ranking rank
1个回答
0
投票

如果您正在寻找与“冒泡排序”相似的详细算法:

original = [a,b,c,d,e]
order = [1,4,2,2,0]

# Initialize list
new = [None for x in range(len(original))]

for i, item in enumerate(original):
    idx = order[i]
    if new[idx] is None:
        new[idx] = item
    else:
        while True:
            if new[idx] < item:
                idx += 1
                if new[idx] is None:
                    new[idx] = item
                    break
            else:
                temp = new[idx]
                new[idx] = item
                while True:
                    idx += 1
                    if new[idx] is None:
                        new[idx] = temp
                        break
                    else:
                        temp2 = new[idx]
                        new[idx] = temp
                        temp = temp2
© www.soinside.com 2019 - 2024. All rights reserved.