数据如下:
Idx评分组
5 0.85欧洲
8 0.77澳大利亚
12 0.70南美洲
13 0.71澳大利亚
42 0.82欧洲
45 0.90亚洲
65 0.91亚洲
73 0.72南美洲
77 0.84亚洲
需要看起来像这样:
Idx评分组
65 0.91亚洲
77 0.84亚洲
45 0.73亚洲
12 0.87南美洲
73 0.72南美洲
5 0.85欧洲
42 0.82欧洲
8 0.83澳大利亚
13 0.71澳大利亚
看看亚洲得分最高的是什么,它向我展示了亚洲的所有得分,然后是得分第二的小组,依此类推?我需要用Python来做这个。这与按一个元素排序然后再按另一个元素排序大不相同。请帮忙。抱歉,如果这个问题是多余的。我几乎不知道该怎么问,更不用说寻找了。在
我把它作为一个字典,所以dict={5:[0.85,欧洲],8:[0.77,澳大利亚]…}我做了一个函数,试图解析数据:
def sortResults(dict):
newDict = {}
for k,v in dict.items():
if v[-1] in newDict:
sorDic[v[-1]].append((k,float(v[0]),v[1]))
else:
newDict[v[-1]] = [(k,float(v[0]),v[1])]
for k in newDict.keys():
for resList in newDict[k]:
resList = sorted(resList,key=itemgetter(1),reverse=True)
return sorDic
上面写着浮动不可预订…我只是有点困惑。在
我认为最简单的方法是先按组进行分类,然后分两步进行排序(第一步按组最大值排序,第二步按组内得分排序)。在
最终结果是
^{pr2}$这与您提供的不同,但是对于您问题中的结果,我认为您有一个输入错误,因为
S.America
的分数0.87
在输入数据中不存在。在我只需要用每个组的最大值填充一个字典,然后按组最大值和个人分数排序。像这样:
这将产生
^{pr2}$我认为有一种比我这里的更好的迭代方法,但这是可行的:
相关问题 更多 >
编程相关推荐