python 修改array_python中数组的就地修改

remove是否在内部复制数组以删除指定的元素?

没有

它是如何工作的?

从pythonsource code for lists,remove()调用listremove():listremove(PyListObject *self, PyObject *v)

{

Py_ssize_t i;

for (i = 0; i < Py_SIZE(self); i++) {

int cmp = PyObject_RichCompareBool(self->ob_item[i], v, Py_EQ);

if (cmp > 0) {

if (list_ass_slice(self, i, i+1, (PyObject *)NULL) == 0)

Py_RETURN_NONE;

return NULL;

}

else if (cmp < 0)

return NULL;

}

PyErr_SetString(PyExc_ValueError, "list.remove(x): x not in list");

return NULL;

}

Python在要删除的项的索引处对列表进行切片。我找到了一个对删除函数here的更好的描述:

^{pr2}$

b19b4526b74b0d41c8ce5f30509d7971.png

根据你的“到位”概念,我想说这是相当到位的,并且适合你的具体情况。但有人已经提出了一个很好的观点,即在遍历列表时不要修改列表。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值