原
在Python中如何构建结构体及结构体数组
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
python中结构体数组构建方法
方法一:利用NumPy进行操作
参考博客:
NumPy-快速处理数据--ndarray对象--多维数组的存取、结构体数组存取、内存对齐、Numpy内存结构
-
import numpy
as np
-
-
GPSType=np.dtype({
'names':[
'id',
'px',
'py',
'vx',
'vy'],
'formats':[
'S32',
'f',
'f',
'f',
'f']})
-
-
Data=np.array([(
'zero',
0.,
0.)]*
10,dtype=GPSType)
#创建Data[2]
-
-
#结构体数组中成员赋值
-
#Data[0]
-
Data[
0][
'id']=
'00'
-
Data[
0][
'px']=
1.1
-
Data[
0][
'py']=
1.2
-
Data[
0][
'vx']=
1.3
-
Data[
0][
'vy']=
1.4
-
-
#Data[1]
-
Data[
1][
'id']=
'01'
-
Data[
1][
'px']=
2.1
-
Data[
1][
'py']=
2.2
-
Data[
1][
'vx']=
2.3
-
Data[
1][
'vy']=
2.4
方法二:利用Class类进行操作
参考博客:《原 Python:类与结构体》 中的
有时候我们可能需要像C中的struct那样的数据类型,把少量的数据项放在一起。Python中可以使用定义一个空类来实现这一点:
-
class GPS:
-
pass
-
-
Data = [GPS()]*
2
-
-
#Data[0]
-
Data[
0].id=
'00'
-
Data[
0].px=
1.1
-
Data[
0].py=
1.2
-
Data[
0].vx=
1.3
-
Data[
0].vy=
1.4
-
-
#Data[1]
-
Data[
1].id=
'01'
-
Data[
1].px=
2.1
-
Data[
1].py=
2.2
-
Data[
1].vx=
2.3
-
Data[
1].vy=
2.4
-
print(Data[
0],Data[
1])
-
print(Data[
0].px)