列表和元组的应用
Contents
最大值最小值
|
|
最大值次大值
设计一个函数返回传入的列表中最大和第二大的元素的值。
|
|
成绩表和平均分统计
录入5个学生3门课程的考试成绩,计算每个学生的平均分和每门课的平均分。
提醒大家在使用嵌套列表时应该避开的坑!
|
|
上面对列表进行遍历的时候,使用了enumerate
函数,这个函数非常有用。我们之前讲过循环遍历列表的两种方法,一种是通过索引循环遍历,一种是直接遍历列表元素。通过enumerate
处理后的列表在循环遍历时会取到一个二元组,解包之后第一个值是索引,第二个值是元素,下面是一个简单的对比。
|
|
指定日期是这一年的第几天
|
|
实现双色球随机选号
双色球属乐透型彩票范畴,由中国福利彩票发行管理中心统一组织发行,在全国范围内销售。红球号码范围为01~33,蓝球号码范围为01~16。双色球每期从33个红球中开出6个号码,从16个蓝球中开出1个号码作为中奖号码,双色球玩法即是竞猜开奖号码的6个红球号码和1个蓝球号码。
这个题目的思路是用一个列表保存红色球的号码,然后通过random
模块的sample
函数实现无放回抽样,这样就可以抽中6个不重复的红色球号码。红色球需要排序,可以使用列表的sort
方法,显示的时候一位数前面需要做补0
的操作,可以用字符串格式化的方式来处理。
|
|
幸运的女人
有15个男人和15个女人乘船在海上遇险,为了让一部分人活下来,不得不将其中15个人扔到海里,有个人想了个办法让大家围成一个圈,由某个人开始从1报数,报到9的人就扔到海里面,他后面的人接着从1开始报数,报到9的人继续扔到海里面,直到将15个人扔到海里。最后15个女人都幸免于难,15个男人都被扔到了海里。问这些人最开始是怎么站的,哪些位置是男人,哪些位置是女人。
上面这个问题其实就是著名的约瑟夫环问题。我们可以通过一个列表来保存这30个人是死是活的状态,例如用布尔值True
表示活着的人,用False
表示被扔到海里的人。最开始的时候列表中的30个元素都是True
,然后我们通过循环的方式去执行报数,找到要扔到海里的人并将对应的列表元素标记为False
,循环会执行到将列表中的15个元素标记为False
,循环的过程中,列表的索引始终在0
到29
的范围,超过29
就回到0
,这样刚好可以形成一个闭环。
|
|
绘制杨辉三角形
|
|
井字棋
没看懂。。
|
|
说明: 最后这个案例来自《Python编程快速上手:让繁琐工作自动化》一书(这本书对有编程基础想迅速使用Python将日常工作自动化的人来说还是不错的选择),对代码做了一点点的调整。
斐波那契数列
|
|
Author kong
LastMod 2021-07-11