【发布时间】:2016-08-24 21:21:50
【问题描述】:
我想将数组(或二维数组)列表(例如 [[1,2,3],[4,5,6]])从 C 传递给 Python 脚本,该脚本计算并返回一个列表。为了实现这一点,嵌入code 需要进行哪些可能的更改?要执行的python脚本如下:
abc.py
import math
def xyz(size,wss):
result=[0 for i in range(size)]
for i in range(size):
wss_mag=math.sqrt(wss[i][0]*wss[i][0]+wss[i][1]*wss[i][1]+wss[i][2]*wss[i][2])
result[i]=1/wss_mag
return result
这里的大小是 WSS 中一维数组的数量(例如,wss=[[1,2,3],[4,5,6]] 的情况下为 2)问题与建议的副本不同,因为它必须将列表作为一维数组返回给 C。
【问题讨论】:
-
“数组列表”是什么意思?您不能将 C 数组放入 Python 列表中。
-
我认为二维数组(就 C 而言)(就像 Python 中的列表列表)会更合适。您可以参考我给出的输入示例。
-
我知道这不是一个完美的副本 - 他们使用的是
std::vector而不是 2D C 数组,它们返回元组而不是列表 - 但它非常接近,答案很好,所以你应该大概能从中得到你想要的。 -
谢谢,是的,它帮助我解决了我的第一部分查询,但是如何将列表返回给 C?
标签: python c arrays python-c-api python-embedding