Python:根据第三个数组排序两个数组

2024-09-24 22:27:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有三个阵列:

a = np.arange(10)
np.shuffle(a)
b = np.random.permutation(a)
c = b+10

c与b是双单音对应,b是a的混合版本。 我想把c的元素按a的顺序排列。 例如:

a = [0 2 4 3 1 5 6 7 8 9]
b = [0 3 9 1 8 6 4 7 2 5]
c = [10 13 19 11 18 16 14 17 12 15]

我想:

b = [0 2 4 3 1 5 6 7 8 9]
c = [10 12 14 13 11 15 16 17 18 19]

我想根据a重新订购c


Tags: 版本元素nprandomshufflepermutationarange单音
1条回答
网友
1楼 · 发布于 2024-09-24 22:27:41

包含以下列表的解决方案:

a_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
b_list = [0, 3, 9, 1, 8, 6, 4, 7, 2, 5]
c_list = [10, 13, 19, 11, 18, 16, 14, 17, 12, 15]

decorated_c = [(a_list.index(b),c) for (b,c) in zip(b_list,c_list)]
_, result = zip(*sorted(decorated_c))
print(result)

输出为:

(10, 11, 12, 13, 14, 15, 16, 17, 18, 19)

即使未对列表进行排序,它也应该有效

相关问题 更多 >