例如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。理想情况下无需导入另一个库。
2 回答
心有法竹
TA贡献1866条经验 获得超5个赞
您可以像这样利用熊猫库
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()
慕丝7291255
TA贡献1859条经验 获得超6个赞
您可以使用enumerate来计算您的索引,然后通过它们索引两次。或者,事实上,任意次数。
from operator import itemgetter
idx = sorted(enumerate(lst1), key=lambda x: float(x[1]), reverse=True)
getter = itemgetter(*map(itemgetter(0), idx))
res1 = list(getter(lst1)) # ['4', '3', '2', '1']
res2 = list(getter(lst2)) # ['666', '5000', '999', '100']
添加回答
举报
0/150
提交
取消