学习网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 37995|回复: 0
收起左侧

高级语言程序设计(Python) - 哈尔滨工业大学-6.1.1 视频

[复制链接]
发表于 1-25 20:22 | 显示全部楼层 |阅读模式
大家好这节课我们介绍列表和元组的概念在介绍列表的概念之前我们首先来看一个例子假设我们想读取3个数字并且计算这3个数字的平均数其实这个程序非常容易实现我们只需要3个变量分别是num1,num2和num3然后呢对他们分别进行赋值接着用下面这个公式就可以求出这3个数字的平均数那么如果不是3个数字而是30个数字呢当然一种做法我们可以用30个变量分别对他们进行赋值然后再求平均数这么做是非常繁琐的那么用什么好的办法能够解决这个问题呢我们就需要引入列表的概念所谓列表它是一种内建的数据结构就是用来存储一系列的元素比如生成一个列表它存储着3个元素分别是5.4,hello和二一表和字符串一样他也支持所以操作比如以上的这3个元素组成的列表那么第零号元素就是54第一号呢就是这个hello字符串第二号呢就是整数二当然他也支持后向的索引是123这一点和字符串非常相像也就是说它有越界的问题同时还支持切片的操作下面我们就来实际的操作一下如生成一个列表然后将它赋值给变量list,赋值成5.4字符串hello以及整数二这时候我们看一下list他的值就是5.4,hello和2然后list[0]就是第一个元素值是5.4当然如果要是三的话那么就越界了因为这里面最大的索引值就是二当然他也支持切片的操作如一冒号三也就是从第二个元素开始一直到第三个元素结果就是hello和二从上面的例子我们可以看出来列表和字符串有很多的相同点当然他们有一些不同的首先它们的相同点是都支持索引的操作以及都支持切片的操作同时列表和字符串一样也支持拼接和重复的操作以及成员的操作和求长度操作以及循环下面我们就来分别的看一下如这个list的是5.4,hello和二那么list可以加上另外一个列表比如1.2,3.4好这时候呢就生成了一个新的列表叫做5.4,hello和二是原来的list而后面又追加了12和3.4当然这种加法呢并没有改变历史的他自身的纸他自身呢仍然是原来的5.4,hello和二列表还支持重复的操作就是list乘以三那么可以看到就是原来的这个列表啊重复了3次当然它还支持in的操作比如5.4 in list那么他返回结果就是true而要是5 in list也就是元素五是不是在list之中显然我并没有在这个list中那么他返回结果就是false其他的也是一样如2 in list true当然我们还可以用len这个函数求list的它的长度所谓类似长度也就是获得list中它的元素的个数这里面list一共有3个元素分别是5.4,hello和2这里面hello是一个字符串他作为一个整体最后就是list支持for的操作即for e in list然后我们print e可以看到就是将每个元素都打印到一行上了最后呢我们再看一下列表和字符串有哪些不同点首先列表是使用方括号来生成的元素之间用逗号进行分隔而字符串呢是使用成对的引号来生成每一个元素呢都是一个字符而字符之间不需要任何的分隔符同时列表可以包含多种类型的对象刚才的例子中在一个列表中既有整数又有浮点数又有字符串性而字符串中的每一个元素只能是一个字符最后一点也是非常重要的也就是说列表的内容是可变的而字符串呢一旦生成它的内容这是不可变的既然列表的内容是可变得那么累表示支持很多的方法用这些方法就能改变列表的元素的内容下面我们就来分别的看一下首先我们可以对列表中的每个元素进行重新的赋值比如将列表的第一个元素呢赋值成a我们来看一下原来的list如果要是5.4hello和2那么可以将list[0]重新的赋值成字符a这时候再看一下list他的结果就变成了ahello,2另外我们也可以通过切片的操作对此列表进行一个赋值如list零冒号二结果就是ahello我们可以对他重新的赋值成如1.2,3.4当然也可以更多如五好这时候list他的结果就变成一点二三点四五然后呢最后是2,就是将a和hello替换成了一点二,3.4和五接下来我们还可以对对表进行追加的操作所谓追加就是在列表最后增加一些新的元素第一种方法叫做append,append是追加一个元素如list.append追加一个新的元素比如叫做ABC然后回车我们可以看到list变成了原来的旧的列表再加上一个ABC当然这种追加的操作和刚才我们介绍的加法也就是拼接的运算非常相似他们的不同点就是拼接的运算并不能改变原来的列表的内容而是生成一个新的列表而append这种追加呢是改变了原来列表的内容另外一个操作呢叫做extend,list.extend他是向列表后面追加一个新的列表如追加一个新的列表叫做defgh好回车那么list呢就在原来的列表基础之上又追加了dfgh上面的append或者extend呢都是在列表的最后进行追加元素而列表呢还支持insert的操作insert呢就可以在列表的任意位置追加一个新的元素如listinsert它需要两个参数第一个参数呢就是要插入的位置如三那插入的内容呢她说我们是一百回车我们看一下list就变成了一点二三点四五然后100二也就是在五和二之间追加了100那么100呢恰好是0123下标为三的这个元素的位置我们还可以用pop或者remove这两个方法删除列表中的元素我们先看一下pop这个方法list然后pop如果没有任何参数的话就是删除掉最后一个元素并且将这个元素的内容进行返回回车之后我们看一下他返回值呢就是gh也就是最后这个元素而list呢已经删除了最后的这个元素当然pop呢还可以有一个参数如list.pop参数就是要删除的那个元素的下标比如说我们将刚才插入的100也就是第三号元素请删除看一下返回值呢就是100而list再看一下这里面的100就已经没有了还支持remove操作和pop不同pop呢是删除的某一个下标它的元素而remove中输入的参数是元素的内容比如五我们可以看到就是将类似中5这个元素进行删除了无论5在什么位置接下来我们再看一下sort这个方法list.sort顾名思义sort就是对列表进行排序我们看一下list 现在内容就由原来的一点二三点四二变成了12二三4也就是说按照从小到大的顺序对其中的所有的元素进行重新的排序了list还只是一个方法叫做reverse顾名思义它就是将列表中的所有的元素进行逆序看一下list的就是原来的一点二二三点四倒过来了变成dfabc34二一2那么关于列表的更多的方法呢大家可以参考如下的这个链接好下面我们回到第一个里第一个例子也就是说求若干元素它们的平均数程序我们可以写成这样我们用一个列表nums呢来存储若干的数字然后用一个循环循环34每一次呢都像列表中追加一个新的元素那么随着循环的结束这个列表中就存储着30个数字接着用如下的一个循环呢求这些元素的和最终再除以30就是求它们的平均数好下面我们来写一下这个程序如我们生成一个列表nums初始化呢是一个空列表没有任何的元素接着用一个循环for i in range ,30太多我们设10接着呢每一次就可以对nums进行append操作append内容就是float然后是raw_input随着循环结束这里面就存储这10个数字接着呢在对这10个数字进行求和s初始化为零for num in nums然后呢s+=num最后再生成一个变量avg他呢就是s除以十然后print这个平均数我们来实际的执行一下生成的10个数字我们可以是一二三四五六七八九十回车之后就打印了它们的平均数是5.5但是这个程序啊还有一些可改进的地方首先我们用时来表示要输入的数字个数当然如果不是10个数字如20个数字那我们就需要在这两个地方都需要改成20那显然是不太方便的一种改进的方法是这20其实呢就是这个num他的个数那么如何求num个数呢就用len然后nums就是这个元素里面有含有多少个数字这时候我们只要在这一个地方进行修改就可以了那么他有没有其他的改进方法呢另外一种改进方法就是再求和的时候我们不用一个循环来求和而直接用python的\x{fffd}建函数就是sum来对一个列表进行求和sum呢它可以求列表中所有元素的和那就是用sum(nums)求和然后再除以nums个数就可以算出来它最终的平均数好我们实际的来操作一下也就是再求和的时候不用以上的这个循环了都删掉而直接用sum这个函数sum(nums)在执行一下依然是10个数字即一二345六七八九十这时候也能够正确地求得它最终平均数是5.5其实拍当中除了sum之外还支持很多的其他的内建函数比如max是求一个列表中最大的元素min呢就是求列表中最小的那个元素关于更多的内建函数呢大家可以参考如下的这个链接[此为课程内容大纲,相关资源下载地址请在论坛搜索标题名称]

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|小黑屋|学习资源网 ( 粤ICP备16100991号-2 )

GMT+8, 12-5 06:08 , Processed in 0.136190 second(s), 31 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc. Template By ¡¾Î´À´¿Æ¼¼¡¿¡¾ www.wekei.cn ¡¿

快速回复 返回顶部 返回列表