定义一个结构体数组
定义一个结构体数组
是什么?
定义一个结构体数组,即定义一个结构体数列表。
方法?
即利用创建对象来创建定义一个结构体。
结构如下:
class 对象名: def __init__(self,变量名1,变量名2,变量名3,......): #用红色标记的东西是一个python中创建对象的一个标识符,不可改变。其中下标线是由两个('_')构成的 self.变量名1=变量名1 self.变量名2=变量名2 self.变量名3=变量名3 .....
例如,创建一个学生信息结构体代码如下:
class student:
def __init__(self,name,sex,age,score): #用红色标记的东西是一个python中创建对象的一个标识符,不可改变。其中下标线是由两个('_')构成的 self.name=name
self.sex=sex self.age=age
self.score=score
怎样进行使用?
例如,上述创建一个学生信息的结构体,再根据题目要求将内容通过键盘输入到结构体类型的列表中。代码如下:
class student: #创建一个学生信息的结构体 def __init__(self,name,sex,age,score): self.name=name self.sex=sex self.age=age self.score=score n=int(input()) #n表示输入几个学生的信息情况 l=[] #l表示为学生信息结构体列表 for i in range(n): #从键盘中输入n个符合学生的信息结构体的数据 s=input().split(' ') #表示一个学生的信息是通过空格隔开 l.append(student(s[0],s[1],s[2],s[3]))#分别将一位学生的信息数据存入到l结构体列表中 a=sorted(l,key=lambda x:x.score) #将l结构体列表的内容进行排序,按照成绩(score)的大小进行排序。key=lambda x:x.score表示为该结构体列表以score分数大小来进行排序
l.sort(key=lambda x:x.score)
for i in a:
print(i.name,i.sex,i.age,i.score)