Mik*_*ike 1 python cmp bisect python-3.x
在python 3之前,我使用bisect将用户定义的对象插入到列表中.bisect对此很满意,因为我的用户定义对象有一个__cmp__定义如何比较对象的def .我已经阅读了在python 3中不支持cmp的理由,我对此很好.我认为我的旧代码的修复方法是通过将其转换为元组来"装饰"我的用户定义对象
(integer, user-defined object).
Run Code Online (Sandbox Code Playgroud)
但是,如果我有一个我的元组列表,并尝试...
i = bisect_left([list_of_tuples], (integer, user-defined object))
Run Code Online (Sandbox Code Playgroud)
然后我收到错误"builtins.TypeError:unorderable types ..."
那么,(在python 3中)我如何使用bisect作为完全不具有自然排序顺序的项目列表?
nov*_*lis 13
你需要添加一个__lt__方法; 现在这是用于比较的而不是__cmp__
| 归档时间: |
|
| 查看次数: |
1288 次 |
| 最近记录: |