我正在尝试测试以下内容:
在Python2.x中,排序工作正常:
>>> sorted([{'callme': 'voyaps-ai-job', 'breakme': 'folld-qy'}, {'callme': 'mixerjui', 'breakme': 'folld-ry'}, {'callme': 'voyaps-ml-jobs', 'breakme': 'folld-uy'}])
[{'breakme': 'folld-qy', 'callme': 'voyaps-ai-job'}, {'breakme': 'folld-ry', 'callme': 'mixerjui'}, {'breakme': 'folld-uy', 'callme': 'voyaps-ml-jobs'}]
在3.X中,这个中断
>>> sorted([{'callme': 'voyaps-ai-job', 'breakme': 'folld-qy'}, {'callme': 'mixerjui', 'breakme': 'folld-ry'}, {'callme': 'voyaps-ml-jobs', 'breakme': 'folld-uy'}])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: '<' not supported between instances of 'dict' and 'dict'
也就是说,我不能对这种数据进行排序。我该怎么做才能做到这一点?你知道吗
在两个字典上使用
<
是没有实际意义的。Python2并不在意,它只是猜测了一些东西(按内存地址排序),Python3更严格。你知道吗您必须指定排序字典的含义。词典什么时候应该排在另一本之前?你知道吗
如果您希望它依赖于例如键“callme”的值,那么您可以这样做
相关问题 更多 >
编程相关推荐