Python学习(1)list & tuple

70 阅读1分钟

列表与元组

  • 列表和元组都是有序的
  • 列表是动态的,长度可变的,可以随时增加、删除或者改变元素。列表的存储空间要略大于元组(需要额外空间over-allocating机制来及时分配额外空间)
  • 元组是静态的,长度大小固定。增加元素只能依靠新建元组。元组相对于列表更加轻量级,性能稍优

课后题

想创建一个空的列表,我们可以用下面的 A、B 两种方式,请问它们在效率上有什么区别吗?我们应该优先考虑使用哪种呢?可以说说你的理由。

# option A
 empty_list = list()
 # option B
 empty_list = []

回答:区别主要在于list()是一个function call,Python的function call会创建stack,并且进行一系列参数检查的操作,比较expensive,反观[]是一个内置的C函数,可以直接被调用,因此效率高。