填充Python列表作为参数传递给C函数

时间:2014-06-16 16:20:54

标签: python c python-2.7 python-c-api

我正在使用C编写Python扩展。当列表作为参数传递时,如何填充C中的空列表,并且C函数不返回列表,而是返回不同的PyObject*

b=[]
a = c.populate(data=b)
print b

输出:

[1, 2, 3]

感谢您的帮助。感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用PyList_Append() function将单个元素添加到现有的Python list对象中:

  

将对象 item 附加到列表列表的末尾。如果成功,则返回0;返回-1并在不成功时设置异常。类似于list.append(item)

或者,使用PyList_SetSlice()扩展包含来自另一个list对象的项目的列表:

  

之间的列表切片设置为 itemlist 的内容。类似于list[low:high] = itemlist项目列表可以是 NULL ,表示空列表的分配(切片删除)。成功时返回0,失败时返回-1。不支持从Python切片时的负索引。