3 一个数组的排序顺序关联另一个数组的排序顺序 方法一使用zip()函数和sorted()函数利用zip()函数将两个数组打包成元组序列再使用sorted()函数对其进行排序最后解包排序后的元组序列得到排序后的数组。因为zip()函数可以将多个可迭代对象对应位置的元素组合成元组sorted()函数能对这些元组按照第一个数组的元素进行排序排序后再将元组解包得到排序后的数组。适用于需要同时对两个数组按照其中一个数组的顺序进行排序的场景。 并且确保两个数组的长度一致否则zip()函数会以较短的数组长度为准进行打包。见“python常见内置函数”# 示例数组 array1 [3, 1, 2] array2 [c, a, b] # 使用 zip 函数将两个数组打包 zipped zip(array1, array2) # 对打包后的元组序列进行排序 sorted_zipped sorted(zipped) # 解包排序后的元组序列 sorted_array1 [x for x, _ in sorted_zipped] sorted_array2 [y for _, y in sorted_zipped] print(sorted_array1) # 输出: [1, 2, 3] print(sorted_array2) # 输出: [a, b, c]方法二使用numpy库借助numpy库的argsort()函数获取第一个数组排序后的索引再使用这些索引对两个数组进行重新排序。argsort()函数返回的是数组排序后的索引通过这些索引可以对数组进行重新排列从而实现按照一个数组的排序顺序对另一个数组进行排序。适用于处理大规模数组的排序numpy库在处理数值计算和数组操作时效率较高。 需要安装numpy库可以使用pip install numpy进行安装。import numpy as np # 示例数组 array1 np.array([3, 1, 2]) array2 np.array([c, a, b]) # 获取 array1 排序后的索引 sort_indices np.argsort(array1) # 使用索引对两个数组进行重新排序 sorted_array1 array1[sort_indices] sorted_array2 array2[sort_indices] print(sorted_array1) # 输出: [1 2 3] print(sorted_array2) # 输出: [a b c]方法三使用字典映射将两个数组的元素一一对应存储到字典中然后按照第一个数组的排序顺序从字典中获取对应的元素。 通过字典的键值对映射关系可根据第一个数组的排序顺序找到第二个数组中对应的元素。适用于需要快速查找对应关系的场景。 如果第一个数组中有重复元素字典会覆盖相同键的值可能导致信息丢失。# 示例数组 array1 [3, 1, 2] array2 [c, a, b] # 创建字典映射 mapping dict(zip(array1, array2)) # 对第一个数组进行排序 sorted_array1 sorted(array1) # 根据排序后的第一个数组从字典中获取对应的元素 sorted_array2 [mapping[x] for x in sorted_array1] print(sorted_array1) # 输出: [1, 2, 3] print(sorted_array2) # 输出: [a, b, c]