当前位置: 首页 > 面试题库 >

如何使用ctypes将Python列表转换为C数组?

訾晋
2023-03-14
问题内容

如果我有以下两套代码,如何将它们粘合在一起?

void
c_function(void *ptr) {
    int i;

    for (i = 0; i < 10; i++) {
        printf("%p", ptr[i]);
    }

    return;
}


def python_routine(y):
    x = []
    for e in y:
        x.append(e)

如何使用x中连续的元素列表调用c_function?我试图将x强制转换为c_void_p,但这没有用。

我也尝试使用类似

x = c_void_p * 10 
for e in y:
    x[i] = e

但这会出现语法错误。

C代码显然想要一个数组的地址。我如何做到这一点?


问题答案:

以下代码适用于任意列表:

import ctypes
pyarr = [1, 2, 3, 4]
arr = (ctypes.c_int * len(pyarr))(*pyarr)


 类似资料:
  • 问题内容: 我将数据表转换为C#通用列表。 现在如何使用json.net 将其转换为json?任何建议。 json格式的样本应该像这样, 问题答案: 这是一个例子: 文档: 使用Json.NET的LINQ to JSON

  • 问题内容: 那是我的JSON数组,但我想将fruits字符串中的所有值转换为Python列表。正确的做法是什么? 问题答案: 您拥有了所需的一切。将是一个字典,将是一个列表

  • 问题内容: 我正在使用ctypes在Python中实现C 函数。C 函数应返回一个指向数组的指针。不幸的是,我还没有弄清楚如何在Python中访问数组。我尝试了numpy.frombuffer,但是没有成功。它只是返回一个任意数字的数组。显然我没有正确使用它。这是一个简单的示例,数组大小为10: function.cpp的内容: wrapper.py的内容: 要编译我正在使用的C ++文件: 您对

  • 问题内容: 考虑以下代码段(假设已经设置为some ): 注意,温度字段是浮标的列表。我想将这些浮点数列表转换为MLlib类型,并且我希望使用基本API而不是通过RDD来表示这种转换(效率低下,因为它将所有数据从JVM发送到python,是使用Python完成的,我们无法获得Spark的Catalyst优化器yada yada的好处。我该怎么做呢?特别: 有没有办法让演员直接工作?请参阅下面的详细

  • 问题内容: 我有以下格式的行: 现在,我要在文件中写入以下内容: 基本上将上面转换成jsonarray? Python中是否有内置方法,库或函数可将数组“转储”到json数组中? 另请注意,我不希望在文件中序列化“ L”。 问题答案: 使用该模块生成JSON输出: 这会将JSON结果直接写入文件(如果文件已经存在,则替换任何先前的内容)。 如果您需要Python本身中的JSON结果字符串,请使用(

  • 问题内容: 我是Python的新手,需要将列表转换为字典。我知道我们可以将元组列表转换为字典。 这是输入列表: 并且我想将此列表转换为元组列表(或直接转换为字典),如下所示: 我们如何在Python中轻松做到这一点? 问题答案: 您想一次将三个项目分组吗? 您想一次分组N个项目吗?