日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 结构体数组_python实现结构体数组(初始化并赋值)

發布時間:2025/3/15 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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实现结构体数组(初始化并赋值)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。