为什么不'阵列'有像列表一样的就地排序吗?

时间:2017-02-04 13:15:13

标签: python arrays python-3.x sorting

为什么array班级没有.sort()?我不知道如何直接对数组进行排序。

array.array是一个打包列表,看起来像一个C数组。 我想使用它,因为在我的情况下只需要数字,但我需要能够对它进行排序。有没有办法有效地做到这一点?

2 个答案:

答案 0 :(得分:0)

我看不到为什么缺少这种理由,这确实与Python的内置电池理念背道而驰。带有key参数的排序函数对排序指向其他内容的索引数组确实很有帮助。

要对数组a进行排序,您当然可以:

a = array.array("L", sorted(a))

,但是不会适当放置,并且会花费相当多的内存和运行时间,将数组转换为列表然后再返回数组。

答案 1 :(得分:-5)

列表是一种数据结构,具有易于执行某些操作的特性。数组是一个非常好理解的标准数据结构,并未针对排序进行优化。数组基本上是存储数据集产品的标准方法。从未有过对它进行分类的概念。