python 结构体数组_python实现结构体数组(初始化并赋值)
標簽:
C語言中結構體數組概念及定義
一個結構體變量可以存放一個學生的一組信息,可是如果有 10 個學生呢?難道要定義 10 個結構體變量嗎?難道上面的程序要復制和粘貼 10 次嗎?
很明顯不可能,這時就要使用數組。結構體中也有數組,稱為結構體數組。結構體數組的每一個元素都是一個結構體類型的變量,都包含結構體中所有的成員項。
定義結構體數組的方法很簡單,同定義結構體變量是一樣的,只不過將變量改成數組。C語言中結構體數組定義很簡單,比如:
struct STU
{
char name[20];
int age;
char sex;
char num[20];
}; //定義STU結構體
struct STU stu[10]; //包含10個STU結構體類型的結構體數組
或者:
typedef struct
{
char name[20];
int age;
char sex;
char num[20];
}Student; //定義Student結構體
Student stu[10]; //包含10個Student結構體類型的結構體數組
假如需要利用python實現以下結構體數組,并且需要賦值:
typedef struct
{
char? id;
float? px;
float py;
float vx;
float? vy;
} GPS;
GPS? Data[2];
#賦值
Data[2]={{'00',1.1,1.2,1.3,1.4},{'01',2.1,2.2,2.3,2.4}}
python中結構體數組構建方法
方法一:利用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類進行操作
有時候我們可能需要像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)
標簽:
總結
以上是生活随笔為你收集整理的python 结构体数组_python实现结构体数组(初始化并赋值)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: P4414 [COCI2006-2007
- 下一篇: NOI数学之提高级:线性方程组的高斯消元