为啥不同类型的 Python 对象按类型名称排序? [复制]
Posted
技术标签:
【中文标题】为啥不同类型的 Python 对象按类型名称排序? [复制]【英文标题】:Why are Python objects of different types ordered by type names? [duplicate]为什么不同类型的 Python 对象按类型名称排序? [复制] 【发布时间】:2010-10-13 13:08:02 【问题描述】:来自 Python 文档:http://docs.python.org/library/stdtypes.html#comparisons
实现说明:除数字外的不同类型的对象按类型名排序;不支持正确比较的相同类型的对象按其地址排序。
是否有任何理由选择这样做而不是引发异常?
【问题讨论】:
【参考方案1】:您引用的那一行大约有四行:
不同类型的对象,除了 不同的数字类型和不同的 字符串类型,从不比较相等; 此类对象的顺序一致 但是任意(这样排序一个 异构数组产生一个 一致的结果)。
您不想在对不同类型的对象列表进行排序时引发异常。
【讨论】:
请注意,Python 3.x 将在比较不同的非强制类型时引发异常。 实际上我确实想在对不同类型的对象列表进行排序时引发异常:)【参考方案2】:将不同类型的对象按明确的顺序收集到一个单独的排序列表中很有用。通过给所有对象一个稳定的排序顺序,这种行为是默认的。
【讨论】:
以上是关于为啥不同类型的 Python 对象按类型名称排序? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
WPF DataGrid 带有一键组合框,显示按枚举名称排序的枚举值