python顺序表?

Python023

python顺序表?,第1张

本问题回答如下:你可以根据自己的需求稍微改动一下

# -*- coding: cp936 -*-

class StuInfo:

def __init__(self):

self.Stu=[{"Sno":"1","Sname":"姓名","ChineseScore":64,"MathsScore":34,"EnglishScore":94,"ComputerScore":83},

{"Sno":"2","Sname":"姓名","ChineseScore":44,"MathsScore":24,"EnglishScore":44,"ComputerScore":71},

{"Sno":"3","Sname":"姓名","ChineseScore":74,"MathsScore":35,"EnglishScore":74,"ComputerScore":93},

{"Sno":"4","Sname":"姓名","ChineseScore":94,"MathsScore":54,"EnglishScore":24,"ComputerScore":73}]

self.attribute={"Sno":"学号",

"Sname":"姓名",

"ChineseScore":"语文成绩",

"MathsScore":"数学成绩",

"EnglishScore":"英语成绩",

"ComputerScore":"计算机成绩"

}

def _add(self):

'''添加'''

singleInfo={}

for i in self.attribute:

if "Score" in i:

singleInfo[i]=int(raw_input(self.attribute[i]+"\n"))

else:

singleInfo[i]=raw_input(self.attribute[i]+"\n").strip()

self.Stu.append(singleInfo)

print "添加成功OK"

for i in singleInfo:

print i,"=",singleInfo[i]

def _del(self):

"""删除学号为Sno的记录"""

Sno=raw_input("学号:\n")

self.Stu.remove(self.__getInfo(Sno))

print "删除成功OK"

def _update(self):

"""更新数据"""

Sno=raw_input("学号\n").strip()

prefix="修改"

updateOperate={"1":"ChineseScore",

"2":"MathsScore",

"3":"EnglishScore",

"4":"ComputerScore"}

for i in updateOperate:

print i,"-->",prefix+self.attribute[updateOperate[i]]

getOperateNum=raw_input("选择操作:\n")

if getOperateNum:

getNewValue=int(raw_input("输入新的值:\n"))

record=self.__getInfo(Sno)

record[updateOperate[getOperateNum]]=getNewValue

print "修改"+record["Sname"]+"的"+str(updateOperate[getOperateNum])+"成绩=",getNewValue,"\n成功OK"

def _getInfo(self):

"""查询数据"""

while True:

print "1->学号查询 2->条件查询 3->退出"

getNum=raw_input("选择:\n")

if getNum=="1":

Sno=raw_input("学号:\n")

print filter(lambda record:record["Sno"]==Sno,self.Stu)[0]

elif getNum=="2":

print "ChineseScore 语文成绩;","MathsScore 数学成绩;","EnglishScore 英语成绩;","ComputerScore 计算机成绩;"

print "等于 ==,小于 <, 大于 >,大于等于 >=,小于等于<= ,不等于!="

print "按如下格式输入查询条件 eg: ChineseScore>=60 "

expr=raw_input("条件:\n")

Infos=self.__getInfo(expr=expr)

if Infos:

print "共%d记录"%len(Infos)

for i in Infos:

print i

else:

print "记录为空"

elif getNum=="3":

break

else:

pass

def __getInfo(self,Sno=None,expr=""):

"""查询数据

根据学号 _getInfo("111111")

根据分数 _getInfo("EnglishSorce>80")"""

if Sno:

return filter(lambda record:record["Sno"]==Sno,self.Stu)[0]

for operate in [">=",">","<=","<","==","!="]:

if operate in expr:

gradeName,value=expr.split(operate)

return filter(lambda record: eval( repr(record[gradeName.strip()])+operate+value.strip()) ,self.Stu)

return {}

def _showAll(self):

"""显示所有记录"""

for i in self.Stu:

print i

@staticmethod

def test():

"""测试"""

_StuInfo=StuInfo()

while True:

print "1->录入数据 2->修改数据 3->删除数据 4->查询数据 5->查看数据 6->退出"

t=raw_input("选择:\n")

if t=="1":

print "录入数据"

_StuInfo._add()

elif t=="2":

print "修改数据"

_StuInfo._update()

elif t=="3":

print "删除数据"

_StuInfo._del()

elif t=="4":

print "查询数据"

_StuInfo._getInfo()

elif t=="5":

print "显示所有记录"

_StuInfo._showAll()

elif t=="6":

break

else:

pass

if __name__=="__main__":

StuInfo.test()

希望本次回答对你的提问有所帮助谢谢

队列:只允许在一端进行插入操作,在另一端进行删除操作的线性表。原理运作为先进先出

双端队列:具有队列和栈的属性的结构,元素可以从两端弹出,其限定插入和删除操作在表的两端进行,双端队列可以在队列任意一端入队和出队

is_empty和size方法普通的队列相同

python数据类型的区别set集合和dict字典的区别(推荐学习:Python视频教程)

唯一区别: set没有对应的value值

两者都是可变类型,即不可哈希

两者的内部元素是不可变类型,即可哈希

都无索引,不可进行切片和根据索引进行的操作

set集合和pst列表的区别

相同点

– 都是可变类型

不同点

– set集合是无序且元素唯一

– set集合取得元素只能for循环,否则因为是无序的,无索引

– pst列表是有序且元素不唯一,可以根据索引进行切片

– pst列表是分离式结构的动态顺序表(是有索引的原因)

– set集合主要用于测试数据和数据的交、并、差等此类型的和去重操作

– set集合本质区别和dict字典相同

pst列表和dict字典的区别

相同点:

可变类型

可迭代

不同点:

dict字典的key必须是不可变对象

dict字典需要的存储空间大于pst列表

查询效率字典远高于列表

tuple元组和pst列表的区别

不同点:

tuple对象创建后就不可变

创建对象的方式:pst = [“元素”] tuple=(“元素”,)

相同点:

可迭代

tuple元组、字符串、数字

不可变类型(可哈希),不可以进行更改元素

元组可以包含可变类型

更多Python相关技术文章,请访问Python教程栏目进行学习!以上就是小编分享的关于python数据类型的区别的详细内容希望对大家有所帮助,更多有关python教程请关注环球青藤其它相关文章!