【问题标题】:Python custom ordered data structurePython自定义有序数据结构
【发布时间】:2021-02-22 07:34:45
【问题描述】:

我想知道 Python 中是否存在一种数据结构,可以为其引入自定义的内部排序策略。我知道OrderedDict 之类的,但他们没有明确提供我所要求的内容。例如,OrderedDict 只是保证插入顺序。 我真的很想在 C++ 中提供使用比较对象的东西:例如在std::set<Type,Compare,Allocator> 中,Compare 是一个定义数据结构内部排序的参数。通常,或者可能总是,它是一个二元谓词,用于评估属于数据结构的一对元素。 Python中有类似的东西吗?你知道任何解决方法吗?

【问题讨论】:

    标签: python data-structures comparison strict-weak-ordering


    【解决方案1】:

    SortedSet & Co 支持key:

    >>> SortedSet([-3, 1, 4, 1], key=abs)
    SortedSet([1, -3, 4], key=<built-in function abs>)
    

    【讨论】:

    • 由于 OP 似乎更熟悉 C++ 的比较对象,因此值得添加一个词来解释自定义 key 和自定义 compare 之间的区别i>,并指向函数functools.cmp_to_key,它将后者转换为前者。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-09
    • 2015-12-18
    • 1970-01-01
    • 2012-09-25
    • 2013-08-30
    相关资源
    最近更新 更多