![8acabefd244e36581214bcee4c1e9d16.png](https://i-blog.csdnimg.cn/blog_migrate/ca9357fad2c66878788732d475dcf620.jpeg)
List 最常用的几种操作有:
- 插入元素,比如 insert、append、extend;
- 弹出元素,比如 pop、delete;
- 切片 slice;
今天主要看一下 List 如何增加元素。最简单的增加 1 个元素,代码如下:
// Objects/listobject.c:285
static int
ins1(PyListObject *self, Py_ssize_t where, PyObject *v)
{
Py_ssize_t i, n = Py_SIZE(self);
PyObject **items;
// 省略一些无关的错误处理代码
// 调整 List 大小
if (list_resize(self, n+1) < 0)
return -1;
// 计算负数位置
if (where < 0) {
where += n;
if (where < 0)
where = 0;
}
if (where > n)
where = n;
// 插入位置之后的元素后移
items = self->ob_item;
for (i = n; --i >&