python列表练习题 您所在的位置:网站首页 python列表len python列表练习题

python列表练习题

#python列表练习题 | 来源: 网络整理| 查看: 265

python列表练习题

列表的练习题非常多,多到我相信会有很大一部分人会跳过这篇教程,不过请放心,不论你是因为图省事还是因为太懒了而跳过本篇教程,将来你都会再回到这里,乖乖的做这些练习题。

编程,既是一门知识,也是一项技能,仅从学习知识的角度看,许多知识都是一看就懂的,但作为一项技能,它需要你反复练习以达到熟练的程度。

就好比骑自行车,坐上去,两脚蹬脚踏板,自行车就可以移动了,这是知识,别人一说你就懂。但是,骑上去就发现,你无法掌握平衡,只有多加练习,才能真正的掌握骑自行车的技术。

1. 列表基础考察

已知一个列表 lst = [1,2,3,4,5]

求列表的长度 判断6 是否在列表中 lst + [6, 7, 8] 的结果是什么? lst*2 的结果是什么 列表里元素的最大值是多少 列表里元素的最小值是多少 列表里所有元素的和是多少 在索引1的位置新增一个的元素10 在列表的末尾新增一个元素20

答案如下

1. len(lst) 2. 6 in lst 3. [1,2,3,4,5,6,7,8] 4. [1, 2, 3, 4, 5, 1, 2, 3, 4, 5] 5. max(lst) 6. min(lst) 7. sum(lst) 8. lst.insert(1, 10) 9. lst.append(20)

以上都是对列表基础操作,所用到的每一个函数,列表的每一个方法,都是需要你熟记于心的

2. 修改列表

lst = [1, [4, 6], True] 请将列表里所有数字修改成原来的两倍

答案如下

lst[0] = 2 lst[1][0] = 8 lst[1][1] = 12

你以为存在一个函数,其功能便是将列表里所有的数据都变成原来的两倍,这样才显得变成语言是一个非常神奇的东西,但是很遗憾的告诉你,那些神奇的东西都是程序员自己实现的。

想要修改列表里的数据,必须通过索引对其重新赋值,上面的方法很low,你也可以写一个函数来实现这个功能,我们假设要处理的列表里只int,float,bool,和list数据,不管嵌套几层list,这个函数都应该能正确处理,下面是一段示例代码

def double_list(lst): for index, item in enumerate(lst): if isinstance(item, bool): continue if isinstance(item, (int, float)): lst[index] *= 2 if isinstance(item, list): double_list(item) if __name__ == '__main__': lst = [1, [4, 6], True] double_list(lst) print(lst)

现在,我们还没有学习到函数,更没有学习到递归函数,这个练习题,你只掌握直接通过索引修改列表即可,等到学习函数后,可以再回到这里做这个练习题。

3. 合并列表

lst = [1,2,3] lst2 = [4,5,6] 不使用 + 号运算符,将lst2合并到lst的末尾,并思考,这个过程中,是否产生了新的列表

答案

lst.extend(lst2)

这个过程中不会产生新的列表,最直观的检验方式就是print(id(lst)),合并前后,lst的内存地址都没有发生变化,只是列表里的内容发生了变化

4. 统计练习

列表lst 内容如下

lst = [2, 5, 6, 7, 8, 9, 2, 9, 9]

请写程序完成下列题目

找出列表里的最大值 找出列表里的最小值 找出列表里最大值的个数 计算列表里所有元素的和 计算列表里元素的平均值 计算列表的长度 找出元素6在列表中的索引

答案

1. max(lst) 2. min(lst) 3. lst.count(max(lst)) 4. sum(lst) 5. sum(lst)/float(len(lst)) 6. len(lst) 7. lst.index(6)

这道题考察的是你对内置函数的理解和运用

下面的题目不允许写代码,仅凭思考来回答

lst[2:4] 的值是什么 lst[1: -3]的值是什么 lst[-5]的值是什么 lst[:-4] 的值是什么 lst[-4:] 的值是什么

这个题目主要考察你对列表切片操作的理解

1. [6, 7] 2. [5, 6, 7, 8, 9] 3. 8 4. [2, 5, 6, 7, 8] 5. [9, 2, 9, 9]

列表的切片操作,最关键的一点在于左闭右开,结束位置的数据不会列入结果中

5. 列表操作练习

列表lst 内容如下

lst = [2, 5, 6, 7, 8, 9, 2, 9, 9]

请写程序完成下列操作

在列表的末尾增加元素15 在列表的中间位置插入元素20 将列表[2, 5, 6]合并到lst中 移除列表中索引为3的元素 翻转列表里的所有元素 对列表里的元素进行排序,从小到大一次,从大到小一次

答案

1. lst.append(15) 2. lst.insert(len(lst)//2, 20) 3. lst.extend([2, 5, 6]) 4. lst.remove(lst[3]) 5. lst = lst[::-1] 6. lst.sort() lst.sort(reverse=True) 6. 复杂列表练习

列表lst 内容如下

lst = [1, 4, 5, [1, 3, 5, 6, [8, 9, 10, 12]]]

不写任何代码,仅凭思考推理来回答下列问题

列表lst的长度是多少 列表lst中有几个元素 lst[1] 的数据类型是什么 lst[3]的数据类型是什么 lst[3][4] 的值是什么 如果才能访问到 9 这个值 执行lst[3][4].append([5, 6])后,列表lst的内容是什么,手写出来 lst[-1][-1][-2]的值是什么 lst[-2]的值是什么 len(lst[-1]) 的值是什么 len(lst[-1][-1])的值是什么 lst[-1][1:3] 的值是什么 lst[-1][-1][1:-2]的值是什么

第1题和第2题其实是一个意思,原本统计列表里数据个数不是什么难事,可一旦出现了嵌套列表的情况,有人就分不清了,列表里的数据是以逗号分隔的,lst[3] 是一个列表,其余都是int类型数据,因此lst的长度是4

第3题,lst[1] = 4,是int类型数据 第4题,lst[3] 的数据类型是列表 第5题,lst[3]的值是[1, 3, 5, 6, [8, 9, 10, 12]],仍然是一个列表,其索引为4的数据是[8, 9, 10, 12],是列表 第6题,lst[3][4][1] 第7题,[1, 4, 5, [1, 3, 5, 6, [8, 9, 10, 12, [5, 6]]]],参考5,6两个题目的解答 第8题,lst[-1]的值是[1, 3, 5, 6, [8, 9, 10, 12]], 再次取索引为-1的数据为[8, 9, 10, 12],取索引为-2的数据为10 第9题,5 第10题,5 第11题,4 第12题, [3, 5], lst[-1]的值是[1, 3, 5, 6, [8, 9, 10, 12]] 第13题,[9], lst[-1][-1]的值是[8, 9, 10, 12],切片起始位置索引是1,值为9,结束位置是-2,值为10,由于左闭右开,最终结果是[9]



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有