【问题标题】:How to clear a PyListObject?如何清除 PyListObject?
【发布时间】:2014-05-06 08:04:39
【问题描述】:

我有一个问题,如何清除由PyList_Append() 组成的列表? 有没有详细介绍 Python/C 扩展 API 函数的文档?

【问题讨论】:

  • 谢谢,还有一个问题。 PyObject *newlist = PyList_New(0); PyObject *subList = PyList_New(0); PyList_Append(subList, PyString_FromString("first")); PyList_Append(subList, PyString_FromString("second")); PyList_Append(subList, PyString_FromString("third")); PyList_SetSlice(subList, 0, PyList_Size(subList), NULL); PyList_Append(subList, PyString_FromFormat("abcdef")); PyList_Append(newlist, subList);现在我得到 [['abcdef'],['abcdef']]。初始字符串“first”和“second”被覆盖。如何解决?抱歉,我不知道如何编辑格式。也许我需要一个教程。

标签: python python-c-api


【解决方案1】:

IIRC 你必须使用PyList_SetSlice:

PyList_SetSlice(your_list, 0, PyList_Size(your_list), NULL);

【讨论】:

    【解决方案2】:

    你可以使用PySequence_DelSlice函数:

    # The same as: del L[0:len(L)]
    PySequence_DelSlice(L, 0, PySequence_Length(L));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-11
      • 2011-12-24
      • 2011-01-16
      • 2010-11-07
      • 2011-08-16
      • 2013-03-25
      • 2016-05-28
      • 2013-04-06
      相关资源
      最近更新 更多