美文网首页
列表 vs. 数组

列表 vs. 数组

作者: 钢笔先生 | 来源:发表于2019-08-03 20:00 被阅读0次

Time: 2019-08-03

列表的好处

列表就是指list,数组是array

列表用起来灵活,简单。

但是从效率和不同的场景来说,可以有其他的选择。比如:

  • 1000万个浮点数时,用数组array效率要更高。
  • 频繁的先入先出操作,双端队列deque更适合,因为速度更快。
  • 检查元素是否在集合中,使用set更合适,因为set为检查元素做过优化。

虽然这两个场景中,列表都可以完成。

避免过度使用列表,要综合考虑问题。

列表和数组的区别

首先,我们需要知道列表本身是可以存储不同类型的。
数组中的元素类型必须相同,因为它的底层存储方式是和C一样的。

array.array

Python数组与C语言数组一样精简。

注意,创建数组需要一个类型码

类型码用于表示在底层的C语言应该存储的数据类型。

array.array的类型码

类型码 C类型 最小尺寸(bytes)
'b' signed integer 1
'B' unsigned integer 1
'u' Unicode character 2
'h' signed integer 2
'H' unsigned integer 2
'i' signed integer 2
'I' unsigned integer 2
'l' signed integer 4
'L' unsigned integer 4
'q' signed integer 8
'Q' unsigned integer 8
'f' floating point 4
'd' floating point 8
from array import array
from random import random

# 创建数组
floats = array('d', (random() for i in range(10**7)))
# 存入文件
fp = open('floats.bin', 'wb')
floats.tofile(fp)
fp.close()

floats2 = array('d')
# 读取二进制文件
fp = open('floats.bin', 'rb')
floats2.fromfile(fp, 10**7)
fp.close()

用二进制方式读取比文本方式读取快60倍,写二进制比写文本文件快7倍。且占用空间要更少。

Python的pickle模块可以用于快速序列化数字类型。

END.

相关文章

  • 列表 vs. 数组

    Time: 2019-08-03 列表的好处 列表就是指list,数组是array。 列表用起来灵活,简单。 但是...

  • 列表 vs. 元组

    Time: 2019-08-04 列表和元组都是可以放置任何数据类型的有序集合。 二者的区别 最重要的区别是: 列...

  • Perl-2-列表与数组

    一、简介 列表:标量的有序集合 数组:储存列表的变量区别:列表指的是数据,数组指的是变量,列表的值不一定要放在数组...

  • perl-three(2018-05-26)

    第三章 列表和数组 标量代表单数,那么列表和数组就代表复数。 列表是标量的有序集合(指的是数据),数组是存储列表的...

  • 列表和数组

    Perl里的列表和数组用于表示复数。列表是指有序集合,数组是存储列表的变量。数组和列表里每个元素都是独立互不相关的...

  • 第3章 列表与数组

    列表(list):标量的有序集合。--数据数组(array):储存列表的变量。--变量“标量-标量变量;列表-数组...

  • R的数组和列表基本操作:创建与访问

    数组 创建数组array() array(向量名,维度说明,dimnames = list(维名称列表)) 列表 ...

  • Perl 列表与数组(一)

    1. 理解含义 列表(list):标量的有序集合。 数组(array):存储列表的变量。 2. 列表与数组的异同 ...

  • 数组/列表

  • 2018年9月29日.NET笔试面试题

    数组列表和数组有什么区别? 数组即Array类,数组列表即ArrayList类,两者非常相似,不过Array类在S...

网友评论

      本文标题:列表 vs. 数组

      本文链接:https://www.haomeiwen.com/subject/yyksdctx.html