Mar*_*edy 2 python arrays sorting
假设我有两个数组,第一个包含int数据,第二个包含位置
a = [11, 22, 44, 55]
b = [0, 1, 10, 11]
即我想a[i]被移到位置b[i] for all i.如果我没有指定位置,则插入一个-1
即
sorted_a = [11, 22,-1,-1,-1,-1,-1,-1,-1,-1, 44, 55]
^ ^ ^ ^
0 1 10 11
Run Code Online (Sandbox Code Playgroud)
另一个例子:
a = [int1, int2, int3]
b = [5, 3, 1]
sorted_a = [-1, int3, -1, int2, -1, int1]
Run Code Online (Sandbox Code Playgroud)
这是我尝试过的:
def sort_array_by_second(a, b):
sorted = []
for e1 in a:
sorted.appendAt(b[e1])
return sorted
Run Code Online (Sandbox Code Playgroud)
我明显搞砸了.
像这样的东西:
res = [-1]*(max(b)+1) # create a list of required size with only -1's
for i, v in zip(b, a):
res[i] = v
Run Code Online (Sandbox Code Playgroud)
算法背后的想法:
b-1b元素res[b[i]]用适当的值设置元素a[i]这将使结果列表保留在-1包含的索引之外的每个位置b,其中的索引将具有相应的值a.