簡體   English   中英

Python Ctypes:將返回的 C 數組轉換為 python 列表,沒有 numpy

[英]Python Ctypes: Convert returned C array to python list, WITHOUT numpy

我正在使用 Python Ctypes 來訪問一些 C 庫。

我連接的一個函數返回const *double ,它實際上是一個雙精度數組。

當我在 Python 中得到結果時,如何將此數組轉換為 Python 列表?

C函數的簽名:

const double *getWeights();

假設它返回一個包含 0.13 和 0.12 的數組。 我想得到一個 python 列表: [0.13, 0.12]

我成功地使用指針解決了它

解決方案:

將函數返回類型定義為POINTER(double_c)

getWeights_function_handler.restype = POINTER(double_c)

當函數返回時,您可以使用[]運算符訪問 C 數組元素(與 C 中使用的運算符相同):

weights = getWeights_function_handler()
mylist = [weights[i] for i in xrange(ARRAY_SIZE_I_KNOW_IN_ADVANCE)]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM