开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第10天,点击查看活动详情
第三章 Python序列结构
1.实验目的
(1)掌握序列结构公有属性和方法的使用,特别是切片的使用。
(2)掌握四大组合数据类型(list,tuple,set,dict)的创建及用法
(3)掌握元组生成器的用法。
2.实验内容
(1)分别用列表推导式和元组生成器生成1000个1-9999之间的整数,再各自统计它们中含
整数88的个数,注意比较两者快慢。
(2)分别用列表推导式和元组生成器生成1000个1-9999之间的整数,再各自输出它们前10
个元素,注意比较两者快慢。
(3)将红楼梦的120章回的内容,添加到一个列表中,每一章回的内容,为列表中的一个元素,然后随机输出一个章回的内容。
(4)在上述源代码的基础上,以字典形式,统计每一章回中,“贾宝玉”或“宝二爷”出现的次数,并输出。
3.实验过程
题目1:分别用列表推导式和元组生成器生成10000个1-9999之间的整数,再各自统计它们中含整数88的个数,注意比较两者快慢。如下图:
用cntt记录元组中88个数,cntl记录列表中88个数
题目2:分别用列表推导式和元组生成器生成10000个1-9999之间的整数,再各自输出它们前10个元素,注意比较两者快慢
跟上一题差不多,下面两个循环,输出每个容器里面前十个元素。
题目3:
将红楼梦的120章回的内容,添加到一个列表中,每一章回的内容,为列表中的一个元素
然后随机输出一个章回的内容。如下图:
运行截图:
这题其实难度不大,但是需要对文件读写和if,elif,else语句以及列表内置函数和随机数有深刻的理解。首先,我们用data存整个红楼梦文本,然后我们把索引值初始化成第一回的索引号。接着我们用一个循环,来遍历120回,每一回先找关键字,找到之后,就从关键字开始将内容存进列表,然后用随机数里面的一个函数choice,就是随机输出列表里面一个元素。
题目4 在上述源代码的基础上,以字典形式,统计每一章回中,“贾宝玉”或“宝二爷”出现的次数,并输出。
这题跟上面一题相比就是多了个for循环,遍历整个列表,然后用一个函数count来统计每一章某个元素出现的次数。
4.实验中遇到的问题
这次实验中最大的挑战就是代码量的增加以及要对元组,列表这些结构有一个比较深入的应用,在第一个任务中,我开始就不会使用随机函数,对list的使用也出现了报错,第三四个任务中,开始大的代码量以及很多变量让我有点头晕眼花,以及统计函数也不是特别清楚。
5.对问题的解决方法
我又查阅了课本并且实际操作了一下,对元组列表的内置函数有了更加深入的了解,随机函数是通过问大佬和查阅CSDN学会了生成随机数列表的方法,list报错是因为我用的list[],其实应该用list()强制转化列表,后面随着代码量的增加,我是先理解代码要实现的目的是什么,然后认真想清楚每个变量要表达的是什么,在清晰的实现代码。
6.实验收获
这次实验可谓让我的Python代码能力有了很大的提升,让我初步适应了比较长的代码,让我对四大组合数据类型有了很深入了了解与应用,知道了随机数的用法,以及读取文件中的内容并放入列表中,这次实验让我受益匪浅!