请问这个问题怎么解决呀??

img

img


我用sorted把它们排了序,可是为什么输出出来还是排序之前的结果呢?出了什么问题?

sorted 不是就地排序,它返回新的排序后的对象。

ClassDict = {k: v for k, v in sorted(ClassDict.items(), key=lambda x: x[1], reverse=True)}

ClassDict = sorted(..,)
你排序之后没有赋值给原来的字典

你把sort和sorted搞混了
sort直接改变原对象,没有返回值
sorted不改变原对象,有返回值

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7636685
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:SORT跟踪学习与源码详解
  • 除此之外, 这篇博客: 深度学习基础:1.张量的基本操作中的 排序运算:sort 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 排序和python原始库差不多。

  • 以下回答由chatgpt基于相关博客总结生成:

    代码实现:

    由于没有提供具体的代码和问题详情,这里列出了常见问题的解决方法。

    1. 字符串排序问题

    如果排序字符串,应该先将字符串转化成列表,然后用sorted函数进行排序,并使用key参数指定字符大小写的比较方式,例如:

    sorted('python Java golang Python'.split(), key=str.lower)
    
    1. 对象排序问题

    如果排序对象列表,应该使用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'))