实验课程

THIS NAME

实验课程

当前位置: 首页 >> 实验课程 >> 正文

计算机程序设计(Pyhton)-列表

发布日期:2024-03-04    作者:赵硕     来源:     点击:

列表

一、实验目的

1、了解列表,学会创建列表。

2、了解如何进行列表元素的访问。

3、了解如何向列表中添加元素。

4、为列表排序。

5、学会删除列表里的元素。

6、列表推导式。

二、实验内容

完成列表的创建、列表元素的访问、列表元素的添加、列表元素的排序、列表元素的删除和列表推导式的编程。

三、实验原理及说明

1. 列表是什么

在实际开发中,经常需要将一组(不只一个)数据存储起来,以便后边的代码使用。说到这里,一些读者可能听说过数组(Array),它就可以把多个数据挨个存储到一起,通过数组下标可以访问数组中的每个元素。需要明确的是,Python中没有数组,但是加入了更加强大的列表。如果把数组看做是一个集装箱,那么Python的列表就是一个工厂的仓库。大部分编程语言都支持数组,比如C语言、C++JavaPHPJavaScript等。从形式上看,列表会将所有元素都放在一对中括号[ ]里面,相邻元素之间用逗号,分隔:[element1, element2, element3, ..., elementn]。格式中,element1 ~ elementn表示列表中的元素,个数没有限制,只要是Python支持的数据类型就可以。从内容上看,列表可以存储整数、小数、字符串、列表、元组等任何类型的数据,并且同一个列表中元素的类型也可以不同。注意:在使用列表时,虽然可以将不同类型的数据放入到同一个列表中,但通常情况下不这么做,同一列表中只放入同一类型的数据,这样可以提高程序的可读性。另外,我们也经常用list代指列表,这是因为列表的数据类型就是 list

2. Python创建列表

Python中,创建列表的方法可分为两种。一是使用[ ]直接创建列表,使用[ ]创建列表后,一般使用=将它赋值给某个变量,具体格式如下:listname = [element1 , element2 , element3 , ... , elementn]。其中,listname表示变量名,element1 ~ elementn表示列表元素。使用此方式创建列表时,列表中元素可以有多个,也可以一个都没有。二是使list()函数创建列表,除了使用[ ]创建列表外,Python还提供了一个内置的函数list(),使用它可以将其它数据类型转换为列表类型。

3. 访问列表元素

列表是Python序列的一种,我们可以使用索引(Index)访问列表中的某个元素(得到的是一个元素的值),也可以使用切片访问列表中的一组元素(得到的是一个新的子列表)。使用索引访问列表元素的格式为:listname[i]。其中,listname表示列表名字,i表示索引值。列表的索引可以是正数,也可以是负数。使用切片访问列表元素的格式为:listname[start : end : step]。其中,listname表示列表名字,start表示起始索引,end表示结束索引,step表示步长。

4. 列表拼接

实际开发中,经常需要对Python列表进行更新,包括向列表中添加元素、修改表中元素以及删除元素。本节先来学习如何向列表中添加元素。使用+运算符可以将多个序列连接起来;列表是序列的一种,所以也可以使用+进行连接,这样就相当于在第一个列表的末尾添加了另一个列表。使用+会生成一个新的列表,原有的列表不会被改变。+更多的是用来拼接列表,而且执行效率并不高,如果想在列表中插入元素,应该使用下面几个专门的方法。

5. Python append()方法添加元素

append()方法用于在列表的末尾追加元素,该方法的语法格式如下:listname.append(obj)。其中,listname表示要添加元素的列表;obj表示到添加到列表末尾的数据,它可以是单个元素,也可以是列表、元组等。当给append()方法传递列表或者元组时,此方法会将它们视为一个整体,作为一个元素添加到列表中,从而形成包含列表和元组的新列表。

6. Python extend()方法添加元素

extend()append()的不同之处在于:extend()不会把列表或者元组视为一个整体,而是把它们包含的元素逐个添加到列表中。extend()方法的语法格式如下:listname.extend(obj)。其中,listname指的是要添加元素的列表;obj表示到添加到列表末尾的数据,它可以是单个元素,也可以是列表、元组等,但不能是单个的数字。

7. Python insert()方法插入元素

append()extend()方法只能在列表末尾插入元素,如果希望在列表中间某个位置插入元素,那么可以使用insert()方法。insert() 的语法格式如下:listname.insert(index , obj)。其中,index表示指定位置的索引值。insert()会将obj插入到listname列表第index个元素的位置。当插入列表或者元组时,insert()也会将它们视为一个整体,作为一个元素插入到列表中,这一点和append()是一样的。提示:insert()主要用来在列表的中间位置插入元素,如果你仅仅希望在列表的末尾追加元素,那我更建议使用append()extend()

8. sort()排序

sort方法可以对列表元素进行排序,默认从小到大,当然也可以修改成从大到小,该方法一般用于纯数字或者纯英文字符列表排序,如果列表中的元素数据类型比较复杂,该方式不在适用,需要注意一下。sort方法的语法格式如下:my_list.sort()。如果希望按照从大到小进行排序,只需要增加参数(参数概念后面还会继续学习)reverse=True即可。注意上述sort方法排序之后是对原列表中元素顺序修改,即修改的是my_list列表的顺序,如果不想修改原列表的顺序,想要新生成一个列表,需要用到的是下述方法。

9. sorted 排序

sort排序将造成列表元素顺序永久修改,很多时候并不需要修改原列表,这种情况下需要借助sorted函数,注意sorted是一个内置函数,并不是列表对象的一个方法,也就是说 sorted 可以用于很多对象的排序。sorted函数的语法格式如下:

sorted(待排序列表) # 正序,从小到大;

sorted(待排序列表,reverse=True) # 逆序,从大到小。

该函数使用之后会返回一个新的列表,你可以用新变量接收一下。注意排序后新变量为new_list对于原my_list列表中元素的顺序并无影响。

10. del:根据索引值删除元素

delPython中的关键字,专门用来执行删除操作,它不仅可以删除整个列表,还可以删除列表中的某些元素。del可以删除列表中的单个元素,格式为:del listname[index]。其中,listname表示列表名称,index表示元素的索引值。del也可以删除中间一段连续的元素,格式为:del listname[start : end]。其中,start表示起始索引,end表示结束索引。del会删除从索引startend之间的元素,不包括end位置的元素。

11. pop():根据索引值删除元素

Python pop()方法用来删除列表中指定索引处的元素,并返回被删除的元素,你可以用一个变量来接住这个元素,具体格式如下:listname.pop(index)。其中,listname表示列表名称,index表示索引值。如果不写index参数,默认会删除列表中的最后一个元素,类似于数据结构中的“出栈”操作。大部分编程语言都会提供和pop()相对应的方法,就是push(),该方法用来将元素添加到列表的尾部,类似于数据结构中的“入栈”操作。但是Python是个例外,Python并没有提供push()方法,因为完全可以使用append()来代替push()的功能。

12. remove():根据元素值进行删除

除了del关键字,Python还提供了remove()方法,该方法会根据元素本身的值来进行删除操作。需要注意的是,remove()方法只会删除第一个和指定值相同的元素,而且必须保证该元素是存在的,否则会引发ValueError错误。

13. 列表推导式

Python中列表推导式用于使用其他可迭代对象创建一个新列表。可迭代对象表示可以使用for循环遍历的数据,例如列表、字符串,元组,字典,集合(元组、字典、集合会在后续实训中介绍)等。列表推导式的基本形式为[表达式for变量in可迭代对象]。注意:列表推导式也可以使用if语句和for循环嵌套,如果你想通过for循环来创建列表时,完全可以使用列表推导式来替代。但是列表推导式中不能使用 while 循环。

四、实验设备

PC机、头歌实践教学平台

五、实验方法

在头歌平台上进行编程,完成如下程序:

1、列表的创建,根据提示,在右侧编辑器补充代码。

图1

2、列表元素的访问,根据提示,在右侧编辑器补充代码。

图2

3、列表元素的添加,根据提示,在右侧编辑器补充代码。

图3

4、列表元素的排序,根据提示,在右侧编辑器补充代码。

图4

5、列表元素的删除,根据提示,在右侧编辑器补充代码。

图5

6、列表推导式,根据提示,在右侧编辑器补充代码。

图6

上一条:计算机程序设计(Pyhton)-跳转语句 下一条:计算机程序设计(Pyhton)-循环语句

关闭