我在C++中有一个从python调用的方法,需要返回一个python列表对象。
我已经创建了该方法,并将其附加到一个暴露的类上,并且现在可以从python调用...(它返回void)。
所以问题是,我如何从中创建一个python列表:std::vector<std::string> results;
我不是很了解此文档中的构造函数如何工作:
http://www.boost.org/doc/libs/1_37_0/libs/python/doc/v2/list.html
另外...我真的不想返回一种包装好的 vector ...我只想创建一个新的python列表,其中包含 vector 中的字符串值。
我很抱歉,如果这是重复的...我发现了很多 vector 问题列表,但找不到有关创建新python列表的信息。
我可以将此问题扩展为包括其他一些问题,例如:
从以下位置创建一个新的python字典:std::map<std::string, std::string>
等。
最佳答案
我使用迭代器将此功能转换为std::vector
到py::list
:
namespace py = boost::python;
template<class T>
py::list std_vector_to_py_list(const std::vector<T>& v)
{
py::object get_iter = py::iterator<std::vector<T> >();
py::object iter = get_iter(v);
py::list l(iter);
return l;
}
关于c++ - std::vector提升::: python::list,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6157409/