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实现结构体数组(初始化并赋值)相关推荐
- python 字符串数组_python用法笔记(数组(list、touple、dict)、字符串)
1.产生n个全为1的数组 a=[1]*n 2.字符数字转化 int('12') float('12.5') str(123.45) ASCII码转为相应的字符:chr(97) 字符转化为相应的ASCI ...
- python 数组_python之多维数组(一)
Numpy中定义的最终对象是称为ndarray的N维数组类型.它描述相同类型的元素集合.可以使用基于零的索引访问集合中的项目. ndarray创建方式 array()函数 接收一个普通的python序 ...
- python 传参 数组_python传参为数组-女性时尚流行美容健康娱乐mv-ida网
女性时尚流行美容健康娱乐mv-ida网 mvida时尚娱乐网 首页 美容 护肤 化妆技巧 发型 服饰 健康 情感 美体 美食 娱乐 明星八卦 首页 > 高级搜索 python 替换字符 为 空 ...
- python二维数组排序_Python实现二维数组按照某行或列排序的方法【numpy lexsort】...
本文实例讲述了Python实现二维数组按照某行或列排序的方法.分享给大家供大家参考,具体如下: lexsort支持对数组按指定行或列的顺序排序:是间接排序,lexsort不修改原数组,返回索引. (对 ...
- python去重复排序_Python实现删除排序数组中重复项的两种方法示例
本文实例讲述了Python实现删除排序数组中重复项的两种方法.分享给大家供大家参考,具体如下: 对于给定的有序数组nums,移除数组中存在的重复数字,确保每个数字只出现一次并返回新数组的长度 注意:不 ...
- python输入二维数组_Python输入二维数组方法
Python输入二维数组方法 前不久对于Python输入二维数组有些不解,今日成功尝试,记以备忘.这里以输入1-9,3*3矩阵为例 n=int(input()) line=[[0]*n]*n for ...
- python中遍历二维数组_python遍历二维数组-女性时尚流行美容健康娱乐mv-ida网
女性时尚流行美容健康娱乐mv-ida网 mvida时尚娱乐网 首页 美容 护肤 化妆技巧 发型 服饰 健康 情感 美体 美食 娱乐 明星八卦 首页 > 高级搜索 二 维 数组 5.2.1 二 ...
- python的对象数组_Python当中的array数组对象实例详解
计算机为数组分配一段连续的内存,从而支持对数组随机访问: 由于项的地址在编号上是连续的,数组某一项的地址可以通过将两个值相加得出,即将数组的基本地址和项的偏移地址相加. 数组的基本地址就是数组的第一项 ...
- python的ctypes模块详解数组_python ctypes结构数组
代码中的STRUCT_ARRAY应该是指向指针数组的指针,而不是指向数组中元素的指针,因为您要将STRUCT_2指针附加到数组. 在c中,STRUCT_ARRAY可以定义为* STRUCT_2 [le ...
最新文章
- 第十一课.DCGAN与CycleGAN
- C#基础篇三流程控制2
- 【Boost】boost库asio详解9——UDP的简单例子1
- 完美解决ArcGIS10.2和Erdas9.2软件冲突的方法:共存!
- ES6的generator
- chart控件支持鼠标滚轮放大缩小_强大的鼠标侧键功能设置工具:X-Mouse Button Control...
- 《OpenGL编程指南》 笔记一 OpenGL概述
- 一个简单的网页设计HTML5作业
- 不小心中了makop勒索病毒
- Focal Loss的阅读笔记
- DBeaver下载安装教程
- tadb.exe、sjk_daemon.exe导致 adb.exe启动失败
- echart饼图标签重叠_解决echarts中饼图标签重叠的问题
- Java内存管理:Java内存区域 JVM运行时数据区
- 2012年国内薪资最高的IT公司排行
- 实习心得体会之JDBC操作21090712
- 【帮帮】移动互联网的“浑水”
- Spring Boot从0开始学的个人笔记11 --安全security
- 美食推荐网站系统springboot+jsp
- 选课系统甘特图(用Excle画甘特图)