python 两个list元素一一对应,一个list进行排序,另一个list上的元素也跟着排序,保持一一对应关系

一、问题

我们在对列表的数据或者元素进行处理的时候,可能会在同一次遍历里面得到两个列表,而它们的元素来自于同一类事件,是一一对应的关系(比如鞋子的品牌跟价格),这种时候我们可能需要将列表按照其中一种元素的大小排列(比如按鞋子的价格排列),而让另一个列表元素(品牌)的位置随之改变,继续跟上一个列表的元素位置保持一一对应的关系。


二、方法

用zip()函数将两个列表结合到一起,进行同步操作。

上代码!!!

1、先使用zip()将列表合并起来看看效果

# 以鞋子品牌和价格为例,创建两个列表
shoes = ["huili","lining","anta","tebu"]
price = [20,10,50,40]

# 将品牌跟价格合在一起
shoes_price = zip(shoes,price)

# 使用list()转为列表形式
print(list(shoes_price))

输出结果:

[('huili', 20), ('lining', 10), ('anta', 50), ('tebu', 40)]

 2、使用sorted()函数指定列表进行排序

# 按x[1]也就是按价格排序,若是x[0]则是按品牌排序
# 若是(x[1],x[0]),则表示先按价格再按品牌排序
sorted_shoes_price = sorted(shoes_price,key=lambda x:x[1])

# 将排序好的列表分出来并打印
result = zip(*sorted_shoes_price)
sorted_shoes, sorted_price = [list(x) for x in result]
print(sorted_shoes)
print(sorted_price)

输出结果:

['lining', 'huili', 'tebu', 'anta']
[10, 20, 40, 50]


三、总结

 可以看到最后存储品牌的列表也跟着价格的排序而随之改变元素位置,希望我的笔记能帮到您,如果觉得写得不错,卑微求个点赞,谢谢您的观看!!!

  • 42
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦想是优秀社畜

您的打赏是对我最大的鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值