--参考书目《Programming Python》(3rd Edition by Mark Lutz)
Chapter2-----A Sneak Preview
这章旨在通过构建一个数据库来熟悉python操作和一些思想
Step 1:Representing Records
主要介绍了两种方法,list 和 dictionary,下逐一介绍
Using Lists:
>>> XuHang = ['Mouse',19,'NJU','Software Engineering'] >>> XuYi = ['Duck',19,'HNU','Electronical Engineering'] >>> ZhangZixuan = ['Black',19,'HBIU','Math'] >>> LiXu = ['Diaosi',19,'HIT','Astronautics Engineering']
The above four recods have 4 properties:nickname,age,university and major.By using the operation of list,it’s easy to access to their fileds.
>>> LiXu[0] #to get nickname 'Diaosi'
furthermore, wo combine them into a unit to form a small database.
>>> people = [XuHang,XuYi,ZhangZixuan,LiXu] >>> for person in people: print (person) ['Mouse', 19, 'NJU', 'Software Engineering'] ['Duck', 19, 'HNU', 'Electronical Engineering'] ['Black', 19, 'HBIU', 'Math'] ['Diaosi', 19, 'HIT', 'Astronautics Engineering']
>>> university = [person[2] for person in people] >>> university ['NJU', 'HNU', 'HBIU', 'HIT'] >>> university = map((lambda x:x[2]),people) >>> university ['NJU', 'HNU', 'HBIU', 'HIT']
#这里注意下在python3.3中,print函数必须加括号,而在2.7中则不必
By indexing, we can easily process them. What’s more powerful tools are list comprehensions(列表推导),maps.
#对于map这里同样也有版本的区别,在3.3和2.7中分别键入type(map)可以发现在2.7中: ‘builtin_function_or_method’,在3.3中则为’type’,这表明在3.3中将map从函数变为了类,其返回值也不是list,而是iterators,所以在3.3中的使用方法为:
>>> university = map((lambda x:x[2]),people)
>>> list(university)
['NJU', 'HNU', 'HBIU', 'HIT']
将iterator转为list即可
map还有些用法类似于并行处理:
>>> def abc(a,b,c): return a*10000+b*100+c >>> list1 = [11,22,33] >>> list2 = [44,55,66] >>> list3 = [77,88,99] >>> list(map(abc,list1,list2,list3)) [114477, 225588, 336699]
#另外一点即是lambda,用于创建一个匿名函数
>>> h = lambda x:x+2 >>> h(5) 7
向database list添加项只需调用append或extend即可
Dificiencies:(1)建立的4个records只是临时储存的对象,一旦退出python对象就会被回收
(2)通过position查找相关properties使代码变得不好阅读,并且每一次查询都必须重复输入上面的操作
Filed Labels:
To better understand what the code means,we associate a field name with a field value..
>>> NICKNAME,AGE,UNI,MAJOR = range(4) >>> XuHang[MAJOR] 'Software Engineering' >>> AGE,XuYi[AGE] (1, 19)
But in this method, we have to remember to update the range assignments whenever we change record structure.Moreover,there is no direct mapping from a record list back to its field’s names,that is you can change 19 to label AGE.
if we try another way:
>>> XuHang = [['nickname','Mouse'],['age','19'],['university','NJU'],['major','Software Engineering']] >>> ZhangZixuan = [['nickname','Black'],['age',19],['universit','HBIU'],['major','Math']] >>> XuHang = [['nickname','Mouse'],['age',19],['university','NJU'],['major','Software Engineering']] >>> people = [XuHang,ZhangZixuan] >>> for person in people: for (nickname,value) in person: if nickname=='nickname': print (value) Mouse Black
We can avoid indexing the concrete numbers.What’s more:
>>> def field(record,label): for (fname,fvalue) in record: if (fname == label): return fvalue >>> field(ZhangZixuan,'major') 'Math'
By designing such interacting function, we can easily achieve index operations.
相关推荐
为了满足学习者全面掌握Python编程知识的需求,"基于Python语言的Python编程学习资料汇总"应运而生。该资料汇总包含了丰富多样的文件类型,总计370个文件,涵盖了Python源代码文件、图片、音频、文档等多种格式,...
Python编程学习
该项目为Python编程学习者提供了一个宝贵的资源库,旨在通过系统的资源整理,帮助用户全面、深入地学习和掌握Python编程的各个方面。 资源库中包含大量的Python脚本,这些脚本覆盖了Python编程的基础知识,如变量、...
本项目旨在为Python编程学习者提供一套系统的设计源码,以供参考和实践。 源码集包含的文件类型多样,涵盖了从基础学习到实际应用的各个方面。PNG图像文件可能用于展示程序运行的图形界面或说明文档中的图形示例。...
六自由度外弹道计算程序:PYTHON编程学习与实践指南,六自由度外弹道计算程序 本程序仅用于PYTHON编程学习交流用途。 相关计算公式参考《弹箭外弹道学 第二版》;关于六自由度外弹道计算的相关知识,推荐参考《弹箭外...
本程序仅用于PYTHON编程学习交流用途。 相关计算公式参考《弹箭外弹道学 第二版》;关于六自由度外弹道计算的相关知识,推荐参考《弹箭外弹道学 第二版》《导弹飞行力学》《外弹道学》这几本书。 程序中使用的弹箭的...
《Python 编程全攻略:从新手到高手》是一篇全面深入的 Python 编程学习指南。文章从 Python 的起源与特性讲起,让读者了解其作为高级编程语言的优势,以及在多领域的广泛应用。在环境搭建上,详细介绍了 Windows、...
根据给定文件信息,以下是知识点的详细阐述:...以上知识内容整理自给定文件中关于Python编程的描述、标签和部分内容,为Python编程学习提供了入门指导和实用案例,同时阐释了Python作为编程语言的核心优势和学习思路。
【个人总结系列-9】Python编程学习总结.pdf 在这一份PDF文档中,作者分享了他们的Python编程学习体验和总结,这是一份针对初学者和有一定基础的学习者都非常有价值的资源。Python作为一门广泛应用于数据分析、机器...
Python 编程学习笔记本
AI Python编程学习课件-第6章深度学习
本教程项目是一款以Python为主要编程语言的编程学习资源集合,总计包含68个文件,其中56个为Python源代码文件,辅以6个配置文件、1个Git属性文件、1个Git忽略文件...该项目旨在为Python编程学习者提供全面的学习支持。
AI Python编程学习课件-第8章区块链技术编程实践
python编程,可以用来学习,提升代码能力,深度了解python原理
该项目是一款基于Jupyter Notebook的Python编程学习资源集合,包含151个文件,涵盖46个Python源代码文件、31个Markdown文档、31个CSV数据文件、22个交互式Notebook文件、11个文本文件、4个图片文件、3个配置文件以及...
AI Python编程学习课件-第1章绪论 主要内容: 人工智能起源与发展 人工智能的主要应用领域 中国人工智能发展现状 Python与人工智能
基于 Skulpt.js 的在线 Python 编程学习网站
总之,《Python编程导论(第2版)》全面覆盖了Python编程的基础到进阶知识,对于想要踏入Python编程领域的学者来说,是一份极具价值的学习资源。通过深入阅读和实践书中的例子,读者不仅可以掌握Python语言,还能培养...
【个人总结系列-9】Python编程学习总结.pdf