python列表自动扩容机制
问题引入:在对比列表与元组的优缺点时,百度答案为:列表是可变的,可以随时进行增加、修改、删除操作,可以进行动态扩容,动态扩容是以牺牲性能损耗的为代价的,于是我搜索了一下列表的动态扩容
当在创建一个列表时,系统会分配一定的内存空间来存储其中的元素,当新增元素个数超出这个空间时,python就会自动进行扩容,扩容步骤:
1.当List的元素数量超过这个长度时,就会触发扩容操作
2.List会创建一个新的容量更大的数组
3.List会将列表中的元素按顺序复制到新的列表中
4.如果后续数据还是超过一定空间时,会继续触发扩容机制
这样就使得列表在不断增加数据时,会扩大内存,影响性能
因为元组是不可变的数据类型,不允许进行新增修改操作,内存不会有影响,性能比列表好。