How to convert a Python Tuple into a C/C++ array?

Jinming Xu cybermanxu at hotmail.com
Thu May 20 21:15:35 EDT 2004


Rick,

I got it by following your instructions!


Thank you very much!


Jinming

>From: "Rick L. Ratzel" <rick.ratzel at scd.magma-da.com>
>To: python-list at python.org
>Subject: Re: How to convert a Python Tuple into a C/C++ array?
>Date: Thu, 20 May 2004 16:37:30 -0500
>
>
>    Here is one way to do it (untested...consider it pseudo-code):
>
>...
>    my_array = (double*) malloc(sizeof(double) * PyTuple_Size(pyObj));
>
>    tupleSize = PyTuple_Size(pyObj);
>
>    for( i=0; i < tupleSize; i++ ) {
>       tupleItem = PyTuple_GetItem(pyObj, i);
>
>       if( !PyFloat_Check(tupleItem) ) {
>          printf("Error: tuple contains a non-float value");
>          exit(1);
>       }
>       my_array[i] = PyFloat_AsDouble(tupleItem);
>    }
>...
>
>
>Jinming Xu wrote:
>>Hello everyone,
>>
>>While embedding my C++ program with Python, I am impeded by the conversion 
>>from a Python Tuple to a C++ array.  I hope to get some assistance from 
>>you guys.
>>
>>I have a sequence of float numbers to be passed from Python to C++, with 
>>indefinite size. So I chose to use Tuple on the Python side.  Since 
>>PyArg_ParseTuple() has no appropriate format to parse Tuple (The Tuple I 
>>am saying is not the Tuple of arguments) of arbitray size, I simply passed 
>>the tuple as follows
>>
>>PyObject* myTuple;
>>  if(!PyArg_ParseTuple(args,"O",&myTuple))
>>    return NULL;
>>
>>Now I have the pointer, myTuple, to the Tuple passed in. How can I convert 
>>the the entired tuple, myTuple pointing to, into a float array, or convert 
>>an individual element into a C/C++ float number? Are there any conversion 
>>functions?
>>
>>Any suggestions or hints will be deeply appreciated!
>>
>>Thanks in advance!
>>
>>Jinming
>>
>>_________________________________________________________________
>>Express yourself with the new version of MSN Messenger! Download today - 
>>it's FREE! http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/
>>
>>
>--
>http://mail.python.org/mailman/listinfo/python-list

_________________________________________________________________
FREE pop-up blocking with the new MSN Toolbar – get it now! 
http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/





More information about the Python-list mailing list