Python实现获取乱序列表排序后的新下标的示例

 更新时间:2023年04月02日 09:54:40   作者:Jumbo星  
本文主要介绍了Python实现获取乱序列表排序后的新下标的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

对一个列表list而言,进行排序是很简单的。正序排序(从小到大)用

list.sort()

 倒序排序(从大到小)用

list.sort(reverse=True)

但是如果不仅限于得到一个排完序的列表,还希望记录原本的下标,那么对于一个numpy.array而言,可以用

np.argsort()

 比如[1,3,2,5,6]

排序后变成[1,2,3,5,6]

但是我们想知道排序后的结果对应原本的下标是什么(答案是[0,2,1,3,4]),就可以用np.argsort()

但是如果就是个简单的list,想实现这个效果,就可以用

# enumerate(x)会自动构造一个tuple(a,b)
# 其中a是index,b是list里index下标对应的具体的值,后面的x是代表一个虚拟变量,即tuple(a,b)
sorted_list = sorted(enumerate(list), key=lambda x:x[1])  # x[1]是因为在enumerate(a)中,a数值在第1位
result = [x[0] for x in sorted_list]

这样返回的result就是原本的index

如果要实现标题里的,更进一步,即要得到一个list排序后的新下标,比如对于 [1,5,2,8,3,4],应该得到[0,4,1,5,2,3]

那就可以用

# enumerate(x)会自动构造一个tuple(a,b)
# 其中a是index,b是list里index下标对应的具体的值,后面的x是代表一个虚拟变量,即tuple(a,b)
# sorted_list = [(0,1),(2,2),(4,3),(5,4),(1,5),(3,8)]
sorted_list = sorted(enumerate(list), key=lambda x:x[1])  # x[1]是因为在enumerate(a)中,a数值在第1位
for i in range(len(sorted_list)):
    list[sorted_list[i][1]] = i

到此这篇关于Python实现获取乱序列表排序后的新下标的示例的文章就介绍到这了,更多相关Python获取新下标内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用Keras预训练模型ResNet50进行图像分类方式

    使用Keras预训练模型ResNet50进行图像分类方式

    这篇文章主要介绍了使用Keras预训练模型ResNet50进行图像分类方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Python编程使用tkinter模块实现计算器软件完整代码示例

    Python编程使用tkinter模块实现计算器软件完整代码示例

    这篇文章主要介绍了Python编程实现一个计算器软件完整代码示例,简单介绍了Tkinter的相关内容,然后分享了通过tkinter模块开发一个计算器的完整Python代码,具有一定借鉴价值,需要的朋友可以参考下。
    2017-11-11
  • 完美解决python3.7 pip升级 拒绝访问问题

    完美解决python3.7 pip升级 拒绝访问问题

    这篇文章主要介绍了python3.7 pip升级 拒绝访问 解决方案,文中给大家提到了python中for循环问题,本文给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-07-07
  • Python连接数据库并批量插入包含日期记录的操作

    Python连接数据库并批量插入包含日期记录的操作

    这篇文章主要介绍了Python连接数据库并批量插入包含日期记录的操作,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-06-06
  • Python 绘制桑基图全面解析

    Python 绘制桑基图全面解析

    桑基图,即桑基能量分流图,也叫桑基能量平衡图。它是一种特定类型的流程图,图中延伸的分支的宽度对应数据流量的大小,通常应用于能源、材料成分、金融等数据的可视化分析。试了一下用python画桑基图,在这里整理了一下分享给大家
    2021-09-09
  • python数字图像处理之图像简单滤波实现

    python数字图像处理之图像简单滤波实现

    这篇文章主要为大家介绍了python数字图像处理之图像简单滤波实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • django页面跳转问题及注意事项

    django页面跳转问题及注意事项

    这篇文章主要介绍了django页面跳转问题及注意事项,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-07-07
  • macbook如何彻底删除python的实现方法

    macbook如何彻底删除python的实现方法

    本文主要介绍了macbook如何彻底删除python的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • python3.x实现发送邮件功能

    python3.x实现发送邮件功能

    这篇文章主要为大家详细介绍了python3.x实现发送邮件功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • Python django框架应用中实现获取访问者ip地址示例

    Python django框架应用中实现获取访问者ip地址示例

    这篇文章主要介绍了Python django框架应用中实现获取访问者ip地址,涉及Python Request模块相关函数使用技巧,需要的朋友可以参考下
    2019-05-05

最新评论