首页 > 解决方案 > Python:如何将一个列表的排序(按最大值)应用于另一个列表的元素索引排序

问题描述

例如

lst1=['1.11','3.34','2.44','4.5']
lst2=['100.0','5000.9','999.0','666.0']

我想将 lst1 中的值从最大值排序到最小值,我可以执行以下操作:

lst1_sorted=sorted(lst1,key=float,reverse=True)

lst1_resorted = ['4', '3', '2', '1']

但后来我也想在 lst2 上使用排序,这样

lst2_resorted = ['666','5000','999','100']

这需要专门用于浮点数的列表条目。例如,我可以在上面使用 key=float。理想情况下无需导入另一个库。

标签: pythonsorting

解决方案


您可以像这样利用 pandas 库

import pandas as pd

# before
lst1=['1','3','2','4']
lst2=['100','5000','999','666']

# Use pandas
df = pd.DataFrame({'A':lst1,'B':lst2}).sort_values('A', ascending =False)

# After
lst1 = df['A'].tolist()
lst2 = df['B'].tolist()

推荐阅读