我正在尝试按值对字典进行排序,但我的代码一直出错。我有三个由分数组成的文件(格式为“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'”。
导致此错误的原因是什么?
答案 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]如果你想要最高的