我目前有一项任务,要按降序对一行excel数字对应的列表值进行排序,并将其存储在字典中
例如,我有一个excel文件,如下所示:
0.296178 0.434362 0.033033 0.758968
0.559323 0.455792 0.770423 0.770423
我使用下面的代码创建了一个字典,将每个单元格的值存储为列表,每行的键都是行号。
from openpyxl import load_workbook
import operator
vWB = load_workbook(filename="voting.xlsx")
vSheet = vWB.active
# Creating the Dictionary of agents and their alternative values
dictionary = {
i + 1: [cell.value for cell in row[0:]]
for i, row in enumerate(vSheet.rows)
}
输出:
{1:[0.296177589742431,0.434362232763003,0.0330331941352554,0.758968208500514],2:[0.59322784244604,0.455791535747786,0.770423104229537,0.7704231 04229537]等}
但是,我不确定如何在不更改键顺序的情况下按降序排列每个列表的值
我想要什么:
{1:[0.758968208500514,0.434362232763003,0.296177589742431,0.0330331941352554,0.75896820850514],2:[7.770423104229537,0.7704231042295 37,0.559322784244604,0.455791535747786]等}
如何按降序对每个键的值列表进行排序
你可以试试这个
d = {1: [0.758968208500514, 0.434362232763003, 0.296177589742431, 0.0330331941352554, 0.758968208500514],
2: [0.770423104229537, 0.770423104229537, 0.559322784244604, 0.455791535747786]}
for key, value in d.items():
print(sorted(value,reverse=True))
输出[0.758968208500514, 0.758968208500514, 0.434362232763003, 0.296177589742431, 0.0330331941352554] [0.770423104229537, 0.770423104229537, 0.559322784244604, 0.455791535747786]