我正在移植适用于python2的代码。在将其移植时,我unorderable types: dict() < dict()
在下一行收到错误
heapq.heappush(colors, color) #this throws error
return heapq.nsmallest(count, colors, key=lambda k: k['shade'])
这些类型是:
`colors` is a <class 'list'>
`color` is a <class 'dict'>
我该如何在python3中进行这项工作?
您根本不需要在heapppush
这里调用,因为nsmallest
已经处理了堆排序。它在内部创建一个堆并在其上推送项目。nsmallest
本身不需要字典是可排序的,因为您指定了key
参数。
只需将替换为heappush调用即可colors.append(color)
。
请注意,尽管您的代码在Python 2中有效,但所做的只是colors
在调用之前以任意顺序重新排列了列表nsmallest
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句