python怎么实现数组排序

例如现在是两个数组,一个数组a是(1,5,2,4,3) 第二数组b对应第一个数组并且为(23,25,27,29,31),就是1对应23;5对应25.现在要对第一个数组排序,排成1,2,3,4,5,同时第二数组对应的值也相应的交换,结果输出23,27,31,29,25。实际数组a和数组b数据量很大,问题是怎么用Python实现

# 合成一个字典
ab = dict(zip(a, b))
# 根据字典的键进行排序(也就是第一个列表);也可以根据第二个列表进行排序。
# 具体是升序还是降序,自己挑着来。
ab_order = sorted(ab.items(), key=lambda x: x[0], reverse=
False)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-04-25
a = (1, 5, 2, 4, 3)
b = (23, 25, 27, 29, 31)
c = zip(a, b)
d = sorted(c, key=lambda x:x[0])
print(d)

追问

[(1, 23), (2, 27), (3, 31), (4, 29), (5, 25)]
要去掉前面索引,输出(23,27,31,29,25),现在怎么弄呢

追答list1 = [(1, 23), (2, 27), (3, 31), (4, 29), (5, 25)]
list2 = [t[1] for t in list1]
print(list2)

本回答被提问者采纳
相似回答