实验四 Python组合类型——列表与元组

张开发
2026/6/30 0:07:11 15 分钟阅读
实验四 Python组合类型——列表与元组
第1关删除重复元素任务描述本关任务编写程序实现删除一个列表里面的重复元素。程序分析为了完成本关任务你需要掌握s.append(x)方法程序实现时对输入的数据进行遍历遍历过程中可以把数据加入一个新的列表如果该数据项已经在列表中则不添加。编程要求根据提示在右侧编辑器补充代码。测试说明平台会对你编写的代码进行测试测试输入1Please Input:1234512378预期输出1[1, 2, 3, 4, 5, 7, 8]测试输入2Please Input:abcabc1233EF预期输出2[a, b, c, 1, 2, 3, E, F]开始你的任务吧祝你成功# 请在此添加代码 ########## Begin ########## source input(Please Input:) r[] for char in source: if char not in r: r.append(char) print(r) ########## End ##########第2关列表中数据处理任务描述本关任务编写程序将列表s中的偶数变成它的平方奇数保持不变。要求列表从键盘输入分别输出变换前后的列表。具体输入输出格式参见测试说明。编程要求根据提示在右侧编辑器补充代码计算并输出变换前后的列表。测试说明平台会对你编写的代码进行测试测试输入please input a list:[9,7,8,3,2,1,5,6]预期输出变换前,s [9, 7, 8, 3, 2, 1, 5, 6]变换后,s [9, 7, 64, 3, 4, 1, 5, 36]开始你的任务吧祝你成功s eval(input(please input a list:)) print(变换前,s, s) for i in range(len(s)): if s[i] % 2 0: s[i] s[i] ** 2 print(变换后,s, s)第3关求ASCII任务描述本关任务编写程序输入一个字符串将字符串中每个字符的ASCII码形成列表并输出。程序分析①可以使用ord(s[i])将字符转换为对应的Unicode码。②可以使用s.append(x)方法将对象x追加到列表s尾部。编程要求根据提示在右侧编辑器补充代码计算并输出字符串中每个字符的ASCII。测试说明平台会对你编写的代码进行测试测试输入请输入一个字符串:ABCDEF123预期输出[65, 66, 67, 68, 69, 70, 49, 50, 51]开始你的任务吧祝你成功str input(请输入一个字符串:) str list(str) for i in range(len(str)): str[i] ord(str[i]) print(str)第4关数据排序任务描述本关任务编写程序,不使用Python内置函数编程实现将n个数按从小到大顺序排列后输出。相关知识在Python中数据排序可以直接使用sort方法或sorted()函数也可以自己编写排序的程序。排序概念假设将n个数按从小到大顺序排列后输出排序过程通常分为3个步骤①将需要排序的n个数存放到一个列表中设列表x。②将列表x中的元素从小到大排序即x[0]最小、x[1]次之、……、x[n-1]最大。③将排序后的x列表输出。其中第②步是关键。排序的方法很多这里介绍最基本的排序算法。简单交换排序法简单交换排序法simple exchange sort的基本思路是将位于最前面的数和它后面的数进行比较比较若干次以后即可将最小的数放到最前面。选择排序法选择排序法selection sort的基本思路是在n个数中找出最小的数使它与x[0]互换然后从n-1个数中找最小的数使它与x[1]互换依此类推直至剩下最后一个数据为止。冒泡排序法冒泡排序法bubble sort的基本思路是将相邻的两个数两两进行比较使小的在前大的在后。编程要求根据提示在右侧编辑器补充代码输出排序后的数据列表。测试说明平台会对你编写的代码进行测试测试输入输入数据个数:3输入一个数:12输入一个数:78输入一个数:54预期输出排序后数据: [12, 54, 78]测试输入输入数据个数:5输入一个数:123输入一个数:5输入一个数:78输入一个数:-1输入一个数:9预期输出排序后数据: [-1, 5, 9, 78, 123]开始你的任务吧祝你成功n int(input(输入数据个数:)) list [0] * n for i in range(0, n): list[i] int(input(输入一个数:)) list.sort() print(排序后数据:, list)第5关数据检索任务描述本关任务编写程序,实现数据检索。设有n个数已存在序列a中检索查找数据x是否在序列a中。相关知识数据查找search是从一组数据中找出具有某种特征的数据项它是数据处理中应用很广泛的一种操作。常见的数据查找方法有顺序查找和二分查找。顺序检索顺序检索的基本思想是对所存储的数据从第一项开始依次与所要检索的数据进行比较直到找到该数据或将全部元素都找完还没有找到该数据为止。二分查找若被检索的是一组有序数据则可以用二分检索方法。1在0到n-1中间选一个正整数k用k把原来有序的序列分成3个子序列①a[0]、a[1]、……、a[k-2]。②a[k-1]。③a[k]、a[k1]、……、a[n-1]。2用a[k-1]与x比较若xa[k-1]查找过程结束。若xa[k-1]则用同样的方法把序列a[0]、a[1]、……、a[k-2]分成3个序列。若xa[k-1]也用同样的方法把序列a[k]、a[k1]、……、a[n-1]分成3个序列直到已找到x或得到“未找到x”的结论为止。这是一种应用“分治策略”的解题思想。当kn/2时称为二分检索法。编程要求根据提示在右侧编辑器补充代码实现数据检索。测试说明平台会对你编写的代码进行测试测试输入1(2, 4, 5, 7, 8, 90)输入待查数据:90预期输出1已找到 90测试输入2(12,3,4,5,7,1)输入待查数据:20预期输出2未找到 20开始你的任务吧祝你成功arr eval(input()) arr tuple(arr) x int(input(输入待查数据:)) if x in arr: print(已找到, x) else: print(未找到, x)第6关矩阵运算任务描述本关任务矩阵运算。编写程序,给定一个m×n矩阵其元素互不相等求每行绝对值最大的元素及其所在行号、列号。程序分析首先要考虑的是如何用列表数据表示矩阵用列表表示一维矩阵是显然的当列表的元素是一个列表时列表可以表示二维矩阵接下来考虑求矩阵一行绝对值最大的元素及其列号的程序段再将处理一行的程序段重复执行m次即可求出每行的绝对值最大的元素及其行号、列号。相关知识为了完成本关任务你需要掌握二维列表的概念及其应用。编程要求根据提示在右侧编辑器补充代码计算并输出每行的绝对值最大的元素及其列号。测试说明平台会对你编写的代码进行测试测试输入请输入行数和列数以隔开:2,31275561预期输出0 2 71 1 56开始你的任务吧祝你成功row, col eval(input(请输入行数和列数以隔开:)) arr [] for i in range(row): current_row [] while len(current_row) col: element int(input()) current_row.append(element) arr.append(current_row) for i in range(row): max_value abs(arr[i][0]) max_col 0 for j in range(len(arr[i])): if abs(arr[i][j]) max_value: max_value abs(arr[i][j]) max_col j print(i, max_col, arr[i][max_col])

更多文章