python 两个列表同时排序,下标保持一致

a = [2, 3, 1, 5]
b = ["b", "c", "a", "e"]
# 利用 * 解包方式 将 一个排序好的元组,通过元组生成器再转成list
print(*sorted(zip(a, b)))
print(sorted(zip(a, b)))
l1, l2 = (list(t) for t in zip(*sorted(zip(a, b))))
print(l1)
print(l2)

输出:

(1, 'a') (2, 'b') (3, 'c') (5, 'e')
[(1, 'a'), (2, 'b'), (3, 'c'), (5, 'e')]
[1, 2, 3, 5]
['a', 'b', 'c', 'e']

方法二   :      ………………………………………………………………………………………………………………………………

# 通过生成元组,然后由于元组排序会默认使用第一个元素,所以第一个元素排序好了,就能得到第二个元素的对应了。转成列# # 表就可以得到对应列表数值

Xy = [(xi, yi) for xi, yi in zip(x, y) ]
sorted_Xy = sorted(Xy)
sorted_X = [xi for xi,_ in sorted_Xy]
sorted_y = [yi for _,yi in sorted_Xy]
print(sorted_X)
print(sorted_y)

 

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值