人工智能第二课-------python列表作业

Adelaide ·
更新时间:2024-05-17
· 570 次阅读

文章目录第1关:列表元素的增删改:客人名单的变化解题代码是:第2关:列表元素的排序:给客人排序题解:第3关:数值列表:用数字说话题解:第4关:列表切片:你的菜单和我的菜单题解 第1关:列表元素的增删改:客人名单的变化 任务描述 本关任务是对一个给定的列表进行增、删、改等操作,并输出变化后的最终列表。列表是由按一定顺序排列的元素组成,其中的元素根据需要可能会发生变化。其中,列表元素的添加、删除或修改等是最常见的操作。 下面以一则请客的故事来说明列表元素操作的应用场景: 有个人邀请几个朋友吃饭,初步拟定了一个客人名单列表guests=['Zhang san','Li si','Wang wu','Zhao liu']。后面因为一些临时情况,这个客人名单不断变化: Zhao liu说要带他的朋友Hu qi一起来; Zhang san因临时有事不能来了; Wang wu说由他的弟弟Wang shi代他赴宴。 最终的客人名单列表如下: ['Li si','Wang shi','Zhao liu','Hu qi'] 相关知识 Python 为列表类型提供了一系列内置操作,包括append()、insert()、pop()、remove()等函数,能够很方便的处理上述列表元素变化的情况。我们以上述客人名单列表为例介绍这几种列表操作方法。 添加列表元素 Python 提供了append()和insert()等函数,实现向一个列表增加新元素的功能。 (1)在列表尾部添加元素 在 Python 中,可以使用append()方法向一个列表的尾部追加一个元素,其基本语法如下: source_list.append(obj) 其中: source_list:待修改的列表; obj:待插入的元素。 例如,要向guests列表尾部增加客人Hu qi,相应的语句为: # 初始化guests列表 guests=['Zhang san','Li si','Wang wu','Zhao liu'] # 向guests列表尾部追加一个名为Hu qi的客人 guests.append('Hu qi') # 输出新的guests列表 print(guests) 输出结果为: ['Zhang san','Li si','Wang wu','Zhao liu','Hu qi'] (2)在列表指定位置添加元素 Python 也提供了insert()方法,可以在列表任意指定位置插入元素,其基本语法为: source_list.insert(index,obj) 其中: source_list:待修改的列表; index:待插入的位置索引; obj:待插入的元素。 注意:在 Python 中,列表起始元素的位置索引为00。 例如,要向guests列表中Zhang san的后面增加客人Hu qi,则相应的语句为: # 创建并初始化guests列表 guests=['Zhang san','Li si','Wang wu','Zhao liu'] # 向guests列表Zhang san后面增加一个名为Hu qi的客人 guests.insert(1,'Hu qi') # 输出新的guests列表 print(guests) 输出结果为: ['Zhang san','Hu qi','Li si','Wang wu','Zhao liu'] 修改列表元素 Python 中修改列表元素的方法为:直接将列表中要修改的元素索引指出,然后为其指定新值。其基本语法如下: source_list[index] = obj 其中: source_list:待修改的列表; index:待修改元素的位置索引; obj:待元素的新值。 例如,将请客名单guests列表中的Wang wu改为Wang shi,则相应的语句为: # 初始化guests列表 guests=['Zhang san','Li si','Wang wu','Zhao liu'] # 将列表中的`Wang wu`改为`Wang shi` guests[2] = 'Wang shi' # 输出新的guests列表 print(guests) 输出结果为: ['Zhang san','Li si','Wang shi','Zhao liu'] 删除列表元素 Python 提供了多种不同的方法来实现对列表中元素的删除操作,包括根据元素索引位置或者元素值删除元素的方法。 (1)删除指定位置的元素 del方法 在 Python 中,调用del函数能够删除指定索引位置的元素,其基本语法如下: del source_list[index] 其中: source_list:待修改的列表; index:待删除元素的位置索引。 例如,将请客名单guests列表中的Zhang san删除,则相应的语句为: # 初始化guests列表 guests=['Zhang san','Li si','Wang wu','Zhao liu'] # 将列表中的`Zhang san`删除 del guests[0] # 输出新的guests列表 print(guests) 输出结果为: ['Li si','Wang wu','Zhao liu'] pop方法 Python 还提供了pop()方法来删除元素,该方法将从源列表删除对应元素,同时返回被删除的元素。其基本语法如下: deleted_obj = source_list.pop(index) 其中: deleted_obj:保存被删除元素的变量,可根据需要自由命名; source_list:待修改的列表; index:待删除元素的位置索引。 注意:index参数为可选项,不填则默认删除列表末尾的元素。 例如,将请客名单guests列表中的Zhang san删除,则相应的语句为: # 初始化guests列表 guests=['Zhang san','Li si','Wang wu','Zhao liu'] # 将列表中的`Zhang san`删除 deleted_obj = guests.pop(0) # 输出被删除的元素以及删除后的guests列表 print(deleted_obj) print(guests) 输出结果为: Zhang san ['Li si','Wang wu','Zhao liu'] (2)删除指定值对应的元素 有些时候我们并不知道要删除元素的位置索引,怎么办呢?别着急,Python 还提供了remove()方法,可以直接通过元素值来删除对应的元素。其基本语法如下: source_list.remove(obj) 其中: source_list:待修改的列表; obj:待删除元素的值。 注意:如果列表中有多个值为obj的元素,remove仅删除位置索引最靠前的那个元素。 例如,将请客名单guests列表中的Zhang san删除,则相应的语句为: # 初始化guests列表,列表中有多个名为Zhang san的客人 guests=['Zhang san','Li si','Wang wu','Zhao liu','Zhang san'] # 将列表中的`Zhang san`删除 guests.remove('Zhang san') # 输出新的guests列表 print(guests) 输出结果为: ['Li si','Wang wu','Zhao liu','Zhang san'] 如果您想了解更多有关列表操作的相关知识,请参考:【美】 Eric Matthes 著《 Python 编程——从入门到实践》第三章。 编程要求 本关的编程任务是补全src/Step1/guests.py文件的代码,实现相应的功能。具体要求如下: step 1:将guests列表末尾的元素删除,并将这个被删除的元素值保存到deleted_guest变量; step 2:将deleted_guest插入到 step 1 删除后的guests列表索引位置为2的地方; step 3:将 step 2 处理后的guests列表索引位置为1的元素删除; 打印输出 step 1 的deleted_guest变量; 打印输出 step 3 改变后的guests列表。 本关涉及的代码文件src/Step1/guests.py的代码框架如下: # coding=utf-8 # 创建并初始化Guests列表 guests = [] while True: try: guest = input() guests.append(guest) except: break # 请在此添加代码,对guests列表进行插入、删除等操作 ########## Begin ########## ########## End ########## 测试说明 本关的测试文件是src/Step1/guests.py,测试过程如下: 平台自动编译并运行guests.py,并以标准输入方式提供测试输入; 平台获取程序输出,并将其输出与预期输出对比。如果一致则测试通过,否则测试失败。 以下是平台对src/Step1/guests.py的样例测试集: 测试输入: zhang san li si wang wu tan qi hu ba 预期输出: hu ba ['zhang san', 'hu ba', 'wang wu', 'tan qi'] 开始你的任务吧,祝你成功! 解题代码是: # coding=utf-8 # 创建并初始化Guests列表 guests = [] while True: try: guest = input() guests.append(guest) except: break # 请在此添加代码,对guests列表进行插入、删除等操作 ########## Begin ########## deleted_guest=guests.pop() guests.insert(2,deleted_guest); guests.pop(1) print(deleted_guest) print(guests) ########## End ########## 第2关:列表元素的排序:给客人排序 任务描述 本关的任务是学会列表排序相关操作的使用方法,实现对列表元素的排序。一般情况下我们创建的列表中的元素可能都是无序的,但有些时候我们需要对列表元素进行排序。 例如,我们想将参加会议的专家名单guests列表中的五个名字元素['zhang san','li si','wang wu','sun qi','qian ba'],分别按照首字母从小到大的顺序和从大到小的顺序分别排序。排序后的输出分别为: ['li si','qian ba','sun qi','wang wu','zhang san'] ['zhang san','wang wu','sun qi','qian ba','li si'] 相关知识 Python 针对列表数据结构内置提供了sort()方法,实现对列表元素的排序功能。其基本语法如下: source_list.sort(reverse=True) 其中: source_list:待排序的列表; sort:列表排序函数的语法关键词; reverse:sort函数的可选参数。如果设置其值为True,则进行反向从大到小排序,如果设置为False或者不填写该参数,则默认进行正向从小到大排序。 例如,给定一个客人列表guests,我们对其按照字母排序如下: guests = ['zhang san','li si','wang wu','sun qi','qian ba'] guests.sort() print(guests) guests.sort(reverse=True) print(guests) 程序输出结果: ['li si','qian ba','sun qi','wang wu','zhang san'] ['zhang san','wang wu','sun qi','qian ba','li si'] 注意:sort函数会直接作用于待排序的列表并修改其排序。 如果您想了解更多有关列表操作的相关知识,请参考:【美】 Eric Matthes 著《 Python 编程——从入门到实践》第三章。 编程要求 本关的编程任务是补全src/step2/sortTest.py文件中的函数部分,要求实现对输入列表source_list中的元素按照首字母从小到大的顺序进行排序,并且输出排序后的列表。 本关涉及的代码文件src/step2/sortTest.py的代码框架如下: # coding=utf-8 # 创建并初始化source_list列表 source_list = [] while True: try: list_element = input() source_list.append(list_element) except: break # 请在此添加代码,对guests列表进行排序等操作并打印输出排序后的列表 ########## Begin ########## ########## End ########## 评测说明 本关的测试文件是src/Step2/sortTest.py,测试过程如下: 平台自动编译并运行sortTest.py,并以标准输入方式提供测试输入; 平台获取程序输出,并将其输出与预期输出对比。如果一致则测试通过,否则测试失败。 以下是平台对src/Step2/sortTest.py的样例测试集: 测试输入: zhang san li si wang wu tan qi hu ba 预期输出: ['hu ba', 'li si', 'tan qi', 'wang wu', 'zhang san'] 开始你的任务吧,祝你成功! 题解: # coding=utf-8 # 创建并初始化`source_list`列表 source_list = [] while True: try: list_element = input() source_list.append(list_element) except: break # 请在此添加代码,对source_list列表进行排序等操作并打印输出排序后的列表 ########## Begin ########## source_list.sort(reverse=False) print(source_list) ########## End ########## 第3关:数值列表:用数字说话 任务描述 相关知识 range()函数 基于range()函数创建数字列表 使用list()函数和range()函数创建数字列表 对数字列表进行简单的统计运算 编程要求 评测说明 任务描述 本关任务是利用合适的方法快速创建数字列表,并能够对列表中的元素数值进行简单的统计运算。在数据可视化的背景下,数字列表在 Python 列表中的应用十分广泛,列表十分适合存储数字集合。 本关目标是让学习者掌握一些处理数字列表的基本方法,主要包括数字列表的创建、对数字列表进行简单的统计运算等。例如,我们要创建一个从22到1010的偶数的数字集合,然后计算出该集合的数值之和: data_set = [2,4,6,8,10] sum=30 相关知识 本关可以利用range()、list()、sum()等函数方法来实现我们的目标。 range()函数 Python 提供了range()函数,能够用来生成一系列连续增加的数字。其基本使用语法有如下三种: range(lower_limit,upper_limit,step) 其中: lower_limit: 生成系列整数的下限整数,不填该参数则默认为从0开始,生成的整数从此数开始,包括该数; upper_limit:生成系列整数的上限整数,必填参数,生成的整数要小于该上限; step:在下限和上限之间生成系列整数之间的间隔步长,不填该参数则默认步长为1。 注意:range()函数的三个参数都只能为整数。如果range()函数中仅一个参数,则该参数表示upper_limit,如果仅两个参数,则分别表示lower_limit和upper_limit。 例如,要生成1~6之间步长为2的系列整数: for i in range(1,6,2): print(i) 输出结果: 1 3 5 基于range()函数创建数字列表 我们可以通过range()函数,利用 Python 列表提供的append()插入功能创建一个列表。例如,我们要创建一个包含1010个0~9整数的平方的列表: # 声明一个列表变量 numbers = [] # 利用append()函数和range()函数向列表插入目标元素 for i in range(10): number = i**2 numbers.append(number) print(numbers) 输出结果: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] 使用list()函数和range()函数创建数字列表 我们可以利用list()函数将range()生成的系列数字直接转为列表,这时range()函数的返回值将会作为list()函数的参数,输出为一个数字列表。其基本使用语法如下: data_list = list(range(lower_limit,upper_limit,step)) 其中: list:列表函数的语法关键词; range:函数语法关键词; data_list:最终生成的列表变量。 例如,我们要生成并输出1~5的数字列表: data_list = list(range(1,6)) print(data_list) 输出结果: [1,2,3,4,5] 对数字列表进行简单的统计运算 Python 中有一些专门处理数字列表简单的统计运算的函数,利用这些函数可以轻松找到数字列表的最小值、最大值及进行总和等一系列统计运算。其基本语法如下: min_value = min(data_list) max_value = max(data_list) sum_value = sum(data_list) 其中: min:数字列表求最小值的语法关键字; max:数字列表求最大值的语法关键字; sum:数字列表求和的语法关键字。 具体使用示例如下: numbers = [2,4,11,1,21,32,5,8] print('The min number is',min(numbers)) print('The max number is',max(numbers)) print('The sum is',sum(numbers)) 输出结果: The min number is 1 The max number is 32 The sum is 84 如果您想了解更多有关列表操作的相关知识,请参考:【美】 Eric Matthes 著《 Python 编程——从入门到实践》第三章。 编程要求 编程任务是补全src/Step3/numbers_square.py文件的代码内容,实现如下功能: step1:根据给定的下限数lower, 上限数upper以及步长step,利用range函数生成一个列表; step2:计算该列表的长度; step3:求该列表中的最大元素与最小元素之差。 本关的代码文件src/Step3/numbers_square.py的代码框架如下: # coding=utf-8 # 创建并读入range函数的相应参数 lower = int(input()) upper = int(input()) step = int(input()) # 请在此添加代码,实现编程要求 ########## Begin ########## ########## End ########## 评测说明 本关的测试文件是src/Step3/numbers_square.py,测试过程如下: 平台自动编译并运行numbers_square.py,并以标准输入方式提供测试输入; 平台获取程序输出,并将其输出与预期输出对比。如果一致则测试通过,否则测试失败。 以下是平台对src/Step3/numbers_square.py的样例测试集: 测试输入: 25 90 4 预期输出: 17 64 开始你的任务吧,祝你成功! 题解: # coding=utf-8 # 创建并读入range函数的相应参数 lower = int(input()) upper = int(input()) step = int(input()) # 请在此添加代码,实现编程要求 ########## Begin ########## data_list = list(range(lower,upper,step)) print(len(data_list)) print("{}".format(max(data_list)-min(data_list))) ########## End ########## 第4关:列表切片:你的菜单和我的菜单 任务描述 我们在前三关中学习了如何处理单个列表元素和所有列表元素,在这一关中我们还将学习如何处理部分列表元素(Python 中称为切片)。例如,当我们去餐馆吃饭点菜时,你的菜单和我的菜单有些时候是一模一样,也有些时候是部分菜名一样。那么如何根据我已经点好的菜单生成你的菜单呢? 本关将通过菜名列表的部分复制,让学习者了解并掌握列表切片的基础知识。 相关知识 Python 切片是对一个列表取其部分元素获得一个子序列的常见操作,切片操作的返回结果类型与被切片的对象一致。要创建一个已有列表的切片,通过指定切片的第一个列表元素和最后一个列表元素的索引号即可。其基本语法如下: list_slice = source_list[start:end:step] 其中: source_list:被切片的源列表; list_slice:切片后生成的子序列列表; start:切片起始索引位置,省略则从头开始; end:切片结束索引位置,省略则切至列表末尾; step:切片步长,可选参数,表示每N个元素取一个,默认为1。 注意:切片和range()函数一样,Python 会自动到达所指定切片结束索引位置的前面一个元素停止。 例如,下面是我已经点好的菜名列表,现在朋友点的菜单中包含我的前三个菜名,输出朋友的菜单: my_menu = ['fish','pork','pizza','carrot'] print(my_menu[1:4:2]) print(my_menu[:3]) print(my_menu[2:]) 输出结果: ['pork','carrot'] ['fish','pork','pizza'] ['pizza','carrot'] 负数索引返回的是离列表末尾相应间隔的元素,列表末尾元素的索引是从-1开始的。例如,朋友的菜单是包含我的菜单最后3个菜名: my_menu=['fish','pork','pizza','carrot'] print(my_menu[-3:]) 输出结果: ['pork','pizza','carrot'] 如果您想了解更多有关列表操作的相关知识,请参考:【美】 Eric Matthes 著《 Python 编程——从入门到实践》第四章。 编程要求 本关的编程任务是补全src/Step4/foods.py文件的代码内容,实现如下功能: 利用切片方法从my_menu列表中每33个元素取11个,组成子序列并打印输出; 利用切片方法获取my_menu列表的最后三个元素组成子序列并打印输出。 本关涉及的代码文件src/Step4/foods.py的代码框架如下: # coding=utf-8 # 创建并初始化my_munu列表 my_menu = [] while True: try: food = input() my_menu.append(food) except: break # 请在此添加代码,对my_menu列表进行切片操作 ########## Begin ########## ########## End ########## 评测说明 本关的测试文件是src/Step4/foods.py,测试过程如下: 平台自动编译并运行foods.py,并以标准输入方式提供测试输入; 平台获取程序输出,并将其输出与预期输出对比。如果一致则测试通过,否则测试失败。 以下是平台对src/Step4/foods.py的样例测试集: 测试输入: pizza chicken carrot apple banana 预期输出: ['pizza','apple'] ['carrot','apple','banana'] 开始你的任务吧,祝你成功! 题解 # coding=utf-8 # 创建并初始化my_menu列表 my_menu = [] while True: try: food = input() my_menu.append(food) except: break # 请在此添加代码,对my_menu列表进行切片操作 ########## Begin ########## print(my_menu[::3]) print(my_menu[-3:]) ########## End ##########
作者:书一文,解一惑



人工智能 python列表 Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号