在第一节中,已经给大家讲解过切片与数组很大的一个区别就是:切片的长度是不固定的,可以向已经定义的切片中追加数据 。并且也给大家简单的演示过通过append的函数,在原切片的末尾添加元素 。
文章插图
文章插图
(问题,以上案例容量的变化,将整型换成“字符串”容量的变量)
问题:可能有同学会问,如果容量不够用了 , 该怎么办呢?
例如有以下切片:
s:= make([]int, 5, 8)
定义了切片s,长度是5 , 容量是8
文章插图
文章插图
结果是:
文章插图
文章插图
并且前面我们讲解过 , 长度是指已经初始化的空间,现在切片s没有赋值,但是默认值为0
验证如下所示:
文章插图
文章插图
结果是:
文章插图
文章插图
现在开始通过append函数追加数据,如下所示:
文章插图
文章插图
输出结果是:
文章插图
文章插图
从输出的结果上,我们完全能够体会到,append函数的作用是在末尾追加(直接在默认值后面追加数据),由于追加了一个元素 , 所以长度为6.
但是如果我们把程序修改成如下所示:
文章插图
文章插图
输出结果是:
文章插图
文章插图
由于s[0]=1是直接给下标为0的元素赋值,并不是追加 , 所以结果的长度不变 。
下面我们继续通过append( )继续追加数据:
文章插图
文章插图
结果是:
文章插图
文章插图
追加完成3个数据后 , 长度变为了8,与容量相同 。
那么如果现在通过append( )函数,继续向切片s中继续追加一个数据 , 那么容量会变为多少呢?
代码如下:
文章插图
文章插图
输出的结果是:
【详解python中append后面的参数 append函数用法】
文章插图
文章插图
追加完成一个数据后,长度变为9,大于创建切片s时的容量,所以切片s扩容,变为16.
那么切片的容量是否是以2倍容量来进行扩容的呢?
我们可以来验证一下:
文章插图
文章插图
输出结果是:
文章插图
文章插图
通过以上结果分析,发现是2倍的容量进行扩容 。
但是我们修改一下循环条件看一下结果 , 将循环结束的条件修改的大一些,如下所示:
文章插图
文章插图
对应的结果:
文章插图
文章插图
通过以上的运行结果分析:当容量小于1024时是按照2倍容量扩容 , 当大于等于1024是不是按照2倍容量扩容 。
- 新网站快速收录,排名权重快速提高 seo培训报名中
- 越随性越时髦!10套日系中年女人的简约穿搭,轻松舒适不失高级感
- 水中之物是代表什么生肖,答案解释
- 手机CPU天梯图详解 骁龙处理器排行天梯图
- 一闪一闪亮晶晶儿歌中日英三版 一闪一闪亮晶晶歌词
- 照片提取文字的方法 电脑如何把图片中的文字提取出来
- 中国最大草原介绍及相关故事 中国最大的草原是哪个草原
- 华为手机客服维修中心电话号码 华为手机客服电话24小时人工电话
- 中国独居人口达到9200万
- Python精讲之必备的内置类型-列表,建议收藏