首页 数据集合体

数据集合体

举报
开通vip

数据集合体数据集合体***数据集合体很多程序都需要处理大量类似数据的集合文档中的大量单词学校学生,企业客户实验得到的数据......***数据集合体大量同类型数据组成一个整体一次物理实验得到的大批数据一个文档中的大量单词一个画布上的所有图形一个学校里的所有学生,......Python提供集合体数据类型:list,tuple,dict,set,file***数据集合体回顾:输入一批数据求平均值的程序无需保存数据:用累积变量sum和count即可但:求中位数和标准差需要保存全部数据.用很多独立变量保存?中位数,一组数据按从小到...

数据集合体
数据集合体***数据集合体很多程序都需要处理大量类似数据的集合文档中的大量单词学校学生,企业客户实验得到的数据......***数据集合体大量同类型数据组成一个整体一次物理实验得到的大批数据一个文档中的大量单词一个画布上的所有图形一个学校里的所有学生,......Python提供集合体数据类型:list,tuple,dict,set,file***数据集合体回顾:输入一批数据求平均值的程序无需保存数据:用累积变量sum和count即可但:求中位数和 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 差需要保存全部数据.用很多独立变量保存?中位数,一组数据按从小到大(或从大到小)的顺序依次排列,处在中间位置的一个数(或最中间两个数据的平均数)标准差(StandardDeviation),也称均方差(meansquareerror),是各数据偏离平均数的距离的平均数。标准差是方差的算术平方根。标准差能反映一个数据集的离散程度。平均数相同的,标准差未必相同。***数据结构构成一个整体的大量数据成员一般是"相关的",即其间存在某种逻辑关系不但要 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示各数据成员,还要表示其间逻辑关系逻辑关系可以体现在存储结构中例如:字符串"HELLO"连续存储的序列结构即可表示5个字符间的关系分散独立存储5个字符,则无法表示其间关系存储结构必须有利于对数据的操作序列序列:多个数据项按次序排列而形成的集合体数据次序是排列先后次序,并非数据项的值的比较Python的str,list,tuple都是序列******序列的操作通用的序列操作s1+s2s*n或n*ss[i]或s[i:j]或s[i:j:k]len(s)min(s)max(s)xins或xnotins***字符串回顾:字符串是字符序列.基本操作:索引,子串,合并,重复...string库不能修改字符串作为对象方法***例:字符串对象方法>>>s="Ithink,thereforeIam.">>>s.count('I')2>>>s.find('re')12>>>(s.lower()).replace('i','I')'IthInk,thereforeIam.'>>>s.split()['I','think,','therefore','I','am.']>>>s.islower()False***列表有没有一个对象能包含很多数据?Yes!如range(10)=[0,1,2,3,4,5,6,7,8,9]又如string.split(“Thisisit.”)=[‘This’,’is’,’it’]列表(List):是一种数据集合体是数据的有序序列整体用一个名字表示:如seq各成员通过下标(索引)引用:如seq[3]***列表与字符串回顾:Python字符串是序列,可通过索引引用列表与字符串的区别:列表的成员可以是任何数据类型,而字符串中只能是字符;列表的成员可修改,而字符串不能修改列表与数组很多编程语言提供数组(array)类型.Python列表与数组的区别:列表是动态的,而数组是定长的列表元素可以是混合类型的,而数组元素是同类型的****列表操作对字符串的操作也可应用于列表:合并:+重复:*索引:[]分段:[:]长度:len()迭代:forin:...列表删除:del[:]列表操作(续)应用于列表的专门方法:隶属:xin*编程实例:stats.py#stats.pyfrommathimportsqrtdefgetNumbers():defmean(nums):defstdDev(nums,xbar):defmedian(nums):defmain():data=getNumbers()xbar=mean(data)std=stdDev(data,xbar)med=median(data)print......if__name__==’__main__’:main()*例:列表对象的方法>>>a=['Irrational',[3.14,2.718],'piande']>>>a.sort()>>>a[[3.14,2.718],'Irrational','piande']>>>a[0].reverse()>>>a[[2.718,3.14],'Irrational','piande']>>>a.insert(2,'number')>>>a[[2.718,3.14],'Irrational','number','piande']>>>printa.pop(0)[2.718,3.14]>>>a['Irrational','number','piande']*列表与类结合使用类将一些数据与操作封装成一个对象列表将一些同类对象组合成整体这两者的结合可以表示任意复杂的数据集合体.*编程实例:对DieView的改进将骰子的7个点构成一个列表.(原为7个独立变量)好处:对整个列表进行操作时,代码变得简单,因为可以应用循环语句.如:forpipinself.pips:pip.setFill(self.background)foriin[0,3,6]:self.pips[i].setFill(self.foreground)根据掷出的value决定点亮骰子哪些点:可以使用表驱动的写法(见下页)*编程实例:对DieView的改进一(续)forpipinself.pips:self.pip.setFill(self.background)ifvalue==1:on=[3]elifvalue==2:on=[0,6]elifvalue==3:on=[0,3,6]elifvalue==4:on=[0,2,4,6]elifvalue==5:on=[0,2,3,4,6]else:on=[0,1,2,4,5,6]foriinon:self.pips[i].setFill(self.foreground)*编程实例:对DieView的改进二(续)onTable=[[],[3],[2,4],[2,3,4],[0,2,4,6],[0,2,3,4,6],[0,1,2,4,5,6]]forpipinself.pips:self.pip.setFill(self.background)on=onTable[value]foriinon:self.pips[i].setFill(self.foreground)注:这个onTable是不变的,可以作为类的实例变量,由__init__初始化.****编程实例:计算器程序=数据结构的集合+处理数据结构的算法的集合因此:整个应用程序本身可看作对象!编程实例:计算器每个计算器是一个对象元组元组:用圆括号包围的一组值.元组也是序列,适用所有序列操作.类似列表但内容不可修改.例如:创建计算器按钮的代码:bSpecs=[(2,1,’0’),(3,1,’.’),(1,2,’1’),(2,2,’2’),(3,2,’3’),(4,2,’+’),(5,2,’-’),(1,3,’4’),(2,3,’5’),(3,3,’6’),(4,3,’*’),(5,3,’/’),(1,4,’7’),(2,4,’8’),(3,4,’9’),(4,4,’<-’),(5,4,’C’)]self.buttons=[]for(cx,cy,label)inbSpecs:self.buttons.append(Button(self.win,Point(cx,cy),.75,.75,label))#createthelarger’=’buttonself.buttons.append(Button(self.win,Point(4.5,1),1.75,.75,"="))*元组若序列创建后就不再改变,则可表示为元组:效率高,防止误操作.Python也将元组实现为对象.方法:<元组>.index(x)<元组>.count(x)tuple()可将字符串和列表转换成元组.*例:元组>>>x=1,2,3#将元组(省略了括号)赋值给x>>>x(1,2,3)>>>x,y,z=1,2,3#实为元组赋值>>>x1>>>y,z(2,3)>>>t=("Lucy",("Math",90))>>>t[1][1]90>>>tuple('hello')('h','e','l','l','o')*集合:无序集合体Python提供set类型元素无序元素不重复set值的创建:用{...}用set(...):可将字符串,列表,元组转换成集合空集:set(),而非{}*例:集合值的创建>>>{1,2,3}set([1,2,3])>>>s={1,1,2,2,2,3,3}>>>sset([1,2,3])>>>set('set')set(['s','e','t'])>>>set([1,1,1,2,1])set([1,2])>>>set((1,2,1,1,2,3,4))set([1,2,3,4])>>>set()set([])*集合运算基本就是数学中的集合运算*例:集合运算>>>s1={1,2,3,4,5}>>>s2={2,4,6,8}>>>6ins1False>>>s1|s2set([1,2,3,4,5,6,8])>>>s1&s2set([2,4])>>>s1-s2set([1,3,5])>>>s1|=s2>>>s1set([1,2,3,4,5,6,8])>>>len(s2)4*集合对象Python以面向对象方式实现set*字典:无序集合体在集合体中查找数据:序列采用索引查找:根据位置检索字典采用关联查找:根据给定数据检索与之关联的数据“键-值”查找:按给定的键,检索相关联的值name:John*字典:无序集合体Python提供字典类型,用来存储“键-值对”.键类型常用字符串,整数;值类型则任意.存储:按内部最有效的方式,不保持创建顺序*字典例缩略语字典abbr={‘etc’:’cetera’,‘cf’:’confer’,’ibid’:’ibidem’}查找:abbr[‘etc’]返回cetera修改:abbr[‘etc’]=‘etcetera’*字典例月份映射表month={1:’Jan’,2:’Feb’,3:’March’,4:’April’}显示:printmonth[1]增加键值对:month[4]=‘April’*字典的操作字典创建d={k1:v1,k2:v2,...,kn:vn}或dict()检索:从ki检索vid[ki]值可修改d[ki]=*例:字典创建>>>d={'Lucy':1234,'Tom':5678,'Mary':1357}>>>printd{'Mary':1357,'Lucy':1234,'Tom':5678}>>>d1=dict(name="Lucy",age=8,hobby=("bk","gm"))>>>d1{'hobby':('bk','gm'),'age':8,'name':'Lucy'}>>>d2=dict([[(5,1),'Worker'],[(6,1),'Child'],[(7,1),'CPC']])>>>d2{(5,1):'Worker',(6,1):'Child',(7,1):'CPC'}*例:字典检索>>>d1["name"]'Lucy'>>>d1["age"]8>>>d1["hobby"]('bk','gm')>>>d1["gender"]Traceback(mostrecentcalllast):File"",line1,ind1["gender"]KeyError:'gender'>>>d2[(6,1)]'Child'>>>d2[7,1]'CPC'*例:字典修改修改与指定键对应的值如果指定的键不存在,则相当于添加键值对>>>d1["age"]=9>>>d1{'hobby':('bk','gm'),'age':9,'name':'Lucy'}>>>d1["gender"]="F">>>d1{'hobby':('bk','gm'),'age':9,'name':'Lucy','gender':'F'}删除键值对:del[]deld[k]*字典对象的方法Python将字典实现为对象,支持的方法:键存在性:.has_key()键列表:.keys()值列表:.values()键值对列表:.items()清空字典:.clear()*例:字典对象的方法>>>d1.keys()['hobby','age','name','gender']>>>d1.values()[('bk','gm'),9,'Lucy','F']>>>d1.items()[0:2][('hobby',('bk','gm')),('age',9)]>>>d1.has_key("gender")True*编程实例:词频统计统计文档中单词的出现次数用字典结构:counts:{<单词>:<频度计数>}用很多累积变量显然不好!单词首次出现时字典里查不到会出错:try:counts[w]=counts[w]+1exceptKeyError:counts[w]=1*编程实例:词频统计(续)对大文档,为每个单词输出频度没有意义.如何输出前n个最频繁的单词?对<单词>:<频度>列表按频度排序.sort()不行比较函数cmp(x,y):根据x在y之前或相等或之后分别返回-1,0,1自定义比较函数,并用于排序:defmyCmp((w1,c1),(w2,c2)):.......sort(myCmp)wordfreq.py*Mostlanguagesdonothavetheflexiblebuilt-inlist(array)operationsthatPythonhas.WriteanalgorithmforeachofthefollowingPythonoperationsandtestyouralgorithmbywritingitupinasuitablefunction.Forexample,asafunction,reverse(myList)shoulddothesameasmyList.reverse().Obviously,youarenotallowedtousethecorrespondingPythonmethodtoimplementyourfunction.(a)count(myList,x)(likemyList.count(x))(b)isin(myList,x)(likexinmyList))(c)index(myList,x)(likemyList.index(x))(d)reverse(myList)(likemyList.reverse())(e)sort(myList)(likemyList.sort())作业作业**End
本文档为【数据集合体】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
is_294897
暂无简介~
格式:ppt
大小:587KB
软件:PowerPoint
页数:44
分类:
上传时间:2023-03-04
浏览量:0