从 Pybind 的列表中删除项目

Remove item from list in Pybind

我正在将 CPython 调用移至 pybind。我有以下代码:

PyObject* my_list = ...;
PyList_SetSlice(my_list , i, i+1, NULL);

用于删除项目。现在,切换到 pybind11,我有

py::list my_list = ...;

我想写一些像

my_list.pop(i);

但我没有找到任何可以做到这一点的东西。我应该怎么办?以下是否正确:

PyList_SetSlice(my_list.ptr() , i, i+1, NULL);

还是我泄露了对象my_list[i]

我不确定你为什么不提倡@oooyaya 建议中的语法,但是删除列表中指定 index 处的元素的一种方法是使用 pop() 之类的

my_list.attr("pop")(index);