使用openpyxl按降序对字典中一行excel数字对应的列表值进行排序



我目前有一项任务,要按降序对一行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]

最新更新