2010-12-20 18 views
2

は、pythonの構造体にベクターを格納する手段ですか?具体的には、しようとしている:pythonの構造体のベクトル

struct data{ 
    string name   // name of event 
    string location  // location of event 
    vector <int> times // times the event happens in 24 hour format 
}; 

私は前に使用されていないので、構造体モジュールでそれを行う方法はわかりません。クラスを作成するより良いことでしょうか?

+0

したいですか? –

答えて

2

あなたの質問からは分かりませんが、Pythonで似たような構造が必要な場合は、vector<int>の代わりにlistを使用できます。

data = ('John','Los Angeles, CA',[1,2,3,4,5,6]) 

別の方法としては、namedtupleを使用することです:あなたは、PythonからC++へのこれらの構造のうちの1つを構築し、合格する

>>> import collections 
>>> Data = collections.namedtuple('Data','name location times') 
>>> data = Data('John','Los Angeles',[1,2,3,4]) 
>>> data.name 
'John' 
>>> data.location 
'Los Angeles' 
>>> data.times 
[1, 2, 3, 4] 
>>> data.times[0] 
1 
1

Pythonの構造体モジュールは、実装定義の内部構造を持つstd::vectorを扱うことができません。この構造体をPythonに公開するには、何らかのラップ(例:SWIGまたはBoost.Python)を提供する必要があります。

関連する問題