我知道sorted()
内置函数。这是一个API设计问题,而不是一个操作方法问题。我想知道为什么list
类型有.sort()
方法来对其内容进行排序,但其他可变序列类型(如array.array
和bytearray
则不会。
答案 0 :(得分:2)
排序代码库(由sorted()
和list.sort()
使用,专门用于list
对象,适用于排序python 对象;可以实现的项目定制特殊方法,指示订购。
因此,该代码不易重用于array.array
和bytearray
类型,这些类型仅处理同类C类型数据。
相反,你需要为这些类型实现一个专用的排序方法,利用你在这里基本处理基本C类型的事实。并且还没有人这样做,这实际上只是 这些类型没有专用.sort()
方法的原因。
解决方法是使用sorted()
并重新投射为原始类型:
a = array.array(a.typecode, sorted(a))
b = bytearray(sorted(b))
numpy ndarray
类型确实有.sort()
method;也许你应该使用那个库,如果你需要进行大量的排序。