开发者社区> 问答> 正文

Python列表与数组-何时使用?

如果要创建一维数组,则可以将其实现为列表,也可以使用标准库中的“数组”模块。我一直将列表用于一维数组。

我想改用数组模块的原因或情况是什么?

是为了性能和内存优化,还是我缺少明显的东西?

展开
收起
保持可爱mmm 2020-01-15 16:40:40 486 0
1 条回答
写回答
取消 提交回答
  • 基本上,Python列表非常灵活,可以保存完全异构的任意数据,并且可以在摊销后的固定时间内非常高效地附加到它们。如果您需要高效而又省时地缩小和扩展列表,则可以采用这些方法。但是它们比C数组占用更多的空间。

    的array.array类型,在另一方面,是只在C数组的薄包装。它只能保存所有相同类型的同类数据,因此仅使用sizeof(one object) * length内存字节。通常,在需要将C数组公开给扩展名或系统调用(例如ioctl或fctnl)时,应使用它。

    array.array也是在Python 2.x()中表示可变字符串的一种合理方法array('B', bytes)。但是,Python 2.6+和3.x提供了一个可变字节字符串bytearray。

    但是,如果要对数字数据的均质数组进行数学运算,则最好使用NumPy,它可以自动对复杂的多维数组进行矢量化操作。

    简而言之:array.array当您需要除数学之外的其他原因而需要同构C数据数组时,此选项很有用。

    问题来源于stack overflow

    2020-01-15 16:40:57
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载