按值排序列表

时间:2015-04-23 08:23:15

标签: python

我正在尝试按值对字典进行排序,但我的代码一直出错。我有三个由分数组成的文件(格式为“Bob:4”,每个分数之间有换行符。

for k in d.keys():
    nlist = d[k][-3:]
    for v in nlist:
        nlist2 = max(nlist)
    sortd = sorted(nlist2.items(), key=lambda x: x[1])
    print('{}: {} '.format(k, sortd))

这导致错误“AttributeError:'list'对象没有属性'items'”。

导致此错误的原因是什么?

3 个答案:

答案 0 :(得分:2)

使用sortd = sorted(nlist, key=lambda x: x[1])试一试,看看是否符合您的要求。

答案 1 :(得分:0)

sortd = sorted(nlist.items(), key=lambda x: x[1])

此处的代码使用nlist,但它是根据nlist = d[k][-3:]

的列表

答案 2 :(得分:0)

您可以修改问题:

nlist2 = {k:max(d[k][-3:]) for k in d}
sortd = sorted(nlist2.items(), key=lambda x: x[1])
for a in sortd:
  print('{}: {} '.format(a[0], a[1]))

或使用-x [1]如果你想要最高的