在boostpython中创建列表列表

在boostpython中创建列表列表,python,c++,boost-python,Python,C++,Boost Python,我想使用boost::python::list创建列表列表 我尝试了这段代码,但似乎子列表没有附加功能 boost::python::list array; boost::python::list temp; for (int i = 0; i < max; i++) { array.append(temp); for (int j = 0; j < max; j++) {

我想使用
boost::python::list
创建列表列表

我尝试了这段代码,但似乎子列表没有附加功能

boost::python::list array;
boost::python::list temp;


for (int i = 0; i < max; i++)
        {
            array.append(temp);
            for (int j = 0; j < max; j++)
            {
                array[i].append(0); //error! array[i] does not have "append" member
            }
        }

您可以直接附加到temp

boost::python::list array;
for (int i = 0; i < max; i++){
    boost::python::list temp;
    for (int j = 0; j < max; j++){
        temp.append(0);
    }
    array.append(temp);
}
boost::python::list数组;
对于(int i=0;i

由于列表可以容纳任何内容,所以当您将其作为数组[i]拉出时,将返回一个泛型对象。在C++中,你需要知道类型。只需添加一个类型转换就足以满足编译器的要求,但如果有任何其他东西可以进入其中,这将是有风险的。如果以后需要处理列表,Boost python具有转换检查功能。

谢谢,但问题是数组没有
append
成员。我尝试了你的代码,但它不起作用。看起来你需要使用
Py\u Initialize()
Py\u Finalize()
,就像在上面的链接中一样。但我仍然收到错误:
error:'boost::python::api::object\u item'没有名为'append'数组[I]的成员。append(0)
错误:“int”数组[i]之前应为主表达式。追加(0)这不是重复的。这个问题是关于list[index]返回一个通用python对象,而不是输入的类型。另一个问题是关于附加到列表中。
boost::python::list array;
for (int i = 0; i < max; i++){
    boost::python::list temp;
    for (int j = 0; j < max; j++){
        temp.append(0);
    }
    array.append(temp);
}