python - 在 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++)
            {
                array[i].append(0); //error! array[i] does not have "append" member
            }
        }

错误信息:

error: ‘boost::python::api::object_item’ has no member named ‘append’
       distArray[i].append(0);

最佳答案

您可以直接附加到 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);
}

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

关于python - 在 boost python 中创建列表列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26911770/

相关文章:

c++ - 使用 Boost-Python 计算 python 中定义的函数的导数

python - list.pop 的 numpy 等价物?

c++ - 在多线程 c++0x11 程序中结合 cntr +x 或 kill 信号使用 zmq::poll

c++ - 如何检查 C++ 中的类型 `T` 是否为 `std::pair<?, bool>`?

python - c++运行python代码以导入自定义模块

c++ - ImportError :/usr/lib/libboost_python. so.1.54.0: undefined symbol: PyClass_Type

python - 一个 Python 初学者的奇怪(ish)查询

Python:pandas groupby ID,添加多列的值,直到满足中断条件

python - 如何在 numpy.fromfunction 中使用范围?

c++ - 奇怪的编译器错误,指出我的迭代器未定义