【发布时间】:2014-02-03 23:31:46
【问题描述】:
我正在尝试用 C++ 编写一段代码,它可以生成一个数组并将其作为 Python 列表返回。我知道我可以使用 numpy.i 中的类型映射将列表作为 NumPy 数组返回,但我正在使用的某些集群上没有安装 NumPy。这个问题与我在这里看到的一些类似问题的主要区别在于,我想将可变长度的 C 数组作为 Python 列表返回。
精简的 C++ 例程如下:
/* File get_rand_list.cpp */
#include "get_rand_list.h"
/* Define function implementation */
double* get_rand_list(int length) {
output_list = new double[length];
/* Populate input NumPy array with random numbers */
for (int i=0; i < length; i++)
output_list[i] = ((double) rand()) / RAND_MAX;
return output_list;
}
我希望能够在 Python 中这样使用它:
from get_rand_list import *
list = get_rand_list(10)
这将返回一个包含 10 个随机浮点数的 Python 列表。如何使用 SWIG 类型映射来包装 C++ 例程来执行此操作?如果有更简单的方法需要对 C++ 例程进行一些小的修改,那很可能没问题。
【问题讨论】:
标签: python c++ arrays list swig