当前位置: 首页 > 面试题库 >

为什么Python的标准库中没有排序的容器?

施学
2023-03-14
问题内容

是否有Python设计决策(PEP)阻止将排序后的容器添加到Python?

OrderedDict不是已排序的容器,因为它是按插入顺序排序的。)


问题答案:

对于Guido而言,这是一个有意识的设计决定(他甚至不愿意添加collections模块)。他的目标是在选择应用程序的数据类型时保留“一种显而易见的方式”。

基本概念是,如果用户足够复杂,以至于不能意识到内置类型不是解决其问题的正确解决方案,那么他们还可以找到合适的第三方库。

鉴于list + sorting,list + heapq和list +
bisect涵盖了许多本来会依赖于固有排序的数据结构的用例,并且存在像blist这样的包,因此没有很大的动力来增加该空间的复杂性,标准库。

在某些方面,这类似于标准库中没有多维数组的事实,而是将该任务割让给了NumPy员工。



 类似资料:
  • 问题内容: 已锁定 。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我有一些想法,随着时间的推移我已经积累了一些想法,但是我真的很想知道是什么使您在对数据库建模时使事情顺利进行: 表名称与主键名称和描述键匹配 模式按功能区域划分 尽可能避免使用复合主键(使用唯一约束) 骆驼案例表名称和字段名称 不要在表前加上tbl_前缀,也不要在proc时加上SP_(无匈

  • 我有一个错误,不健康的pod,即使我认为pod在重新安排后按预期工作。如果我重新启动(删除)它,它就准备好了,但我想了解为什么它最终会处于不健康状态。 我的探头很简单,就像这样: 事件: 状态 如果我跑了 我得到200英镑。好的。 有人能解释为什么吊舱没有准备好吗?我想这与OOMKilled有关,因为内存限制,这应该是固定的。但我想知道为什么它不能正确重启。

  • 问题内容: 我来自C语言,正在学习Python。缺乏显式的类型安全性令人不安,但是我已经习惯了。面对动态语言的所有优点,缺少内置的基于契约的编程(纯抽象类,接口)的不足是必须习惯的。 但是,无法请求const- cortectness使我疯狂!为什么Python中没有常量?为什么不鼓励使用类级常量? 问题答案: C和Python属于两种不同的语言类别。 前一个是 静态 类型的。后者是 动态的 。

  • Python标准库是Python强大的动力所在,我们已经在前文中有所介绍。由于标准库所涉及的应用很广,所以需要学习一定的背景知识。 硬件原理 这一部份需要了解内存,CPU,磁盘存储以及IO的功能和性能,了解计算机工作的流程,了解指令的概念。这些内容基础而重要。 Python标准库的一部份是为了提高系统的性能(比如mmap),所以有必要了解基本的计算机各个组成部分的性能。 操作系统 在了解操作系统时

  • 新的语言特性和近10年来的经验会给标准库中的容器带来啥改进呢?首先,新容器类型:array(大小固定容器),forward_list (单向链表),unordered containers(哈希表,无序容器)。其次,新特性:initializer lists(初始化列表),rvalue references(右值引用),variadic templates(可变参数模板),constexpr(常量

  • 我用Kotlin和Spring-Boot的应用程序中的一个接口自动连接了bean列表。 在post构造中,我按类的简单名称对bean进行排序 我看到下一个结果 bean不是按简单的名称排序的。 我不明白为什么结果不一样。我试着用了一个类和一个字段-工作OK。 我错过了什么?