sorted 不是就地排序,它返回新的排序后的对象。
ClassDict = {k: v for k, v in sorted(ClassDict.items(), key=lambda x: x[1], reverse=True)}
ClassDict = sorted(..,)
你排序之后没有赋值给原来的字典
你把sort和sorted搞混了
sort直接改变原对象,没有返回值
sorted不改变原对象,有返回值
排序和python原始库差不多。
代码实现:
由于没有提供具体的代码和问题详情,这里列出了常见问题的解决方法。
如果排序字符串,应该先将字符串转化成列表,然后用sorted函数进行排序,并使用key参数指定字符大小写的比较方式,例如:
sorted('python Java golang Python'.split(), key=str.lower)
如果排序对象列表,应该使用key参数指定排序所依据的对象属性或方法,例如:
sorted(students, key=lambda x:x.Maths)
或者使用attrgetter函数,例如:
from operator import attrgetter
sorted(students, key=attrgetter('Maths'))
如果需要对多个属性进行一致性排序,应该将多个属性放在一个列表中作为排序的依据,例如:
sorted(students, key=lambda x:[x.Chinese, x.Maths])
或者使用attrgetter函数,例如:
sorted(students, key=attrgetter('Chinese', 'Maths'))