目录
python找出元素
一、题目要求
1、编程实现
2、输入输出
二、算法分析
三、程序编写
四、程序说明
五、运行结果
六、考点分析
七、 推荐资料
1、蓝桥杯比赛
2、考级资料
3、其它资料
python找出元素
第十四届蓝桥杯青少年组python比赛选拔赛真题
一、题目要求
(注:input()输入函数的括号中不允许添加任何信息)
1、编程实现
给定一个长度为N的列表(N为偶数),请你找出列表中出现次数大于N/2次的元素如:N=4,列表为[3,2,3,3],其中列表中出现次数大于2(4/2)的元素为3,故输出3。
2、输入输出
输入描述:输入N个整数,整数之间一个英文逗号隔开,N个整数表示列表中的元素
输出描述:输出列表中出现次数大于N/2次的元素,如果不存在则输出-1
输入样例:
3,2,3,3
输出样例:
3
二、算法分析
- 题目相对而言有一点小难度,难在大于N/2的元素分析
- 列表数字可以有多个,但是我们可以具体分析会发现
- 满足条件的列表里面的元素大于N/2次的最多只有一个
- 所以可以用一个变量来保存当前元素
- 最后根据变量的值进行判断然后输出即可
三、程序编写
lst1 = input().split(',')
n = len(lst1)
t = 0
for i in lst1:
if lst1.count(i) > n/2:
t = i
if t == 0:
print(-1)
else:
print(t)
四、程序说明
- 代码首先使用input()函数获取用户输入,并使用split(',')将输入的字符串以逗号分隔为一个列表,赋值给lst1变量
- 然后使用n = len(lst1)获取列表的长度,并初始化变量t为0
- 使用for i in lst1循环遍历列表中的元素,依次赋值给变量i
- 在循环中,使用lst1.count(i)统计元素i在列表中出现的次数,然后与n/2进行比较
- 如果出现次数超过了列表长度的一半,将元素i赋值给变量t
- 循环结束后,判断变量t的值,如果为0则表示没有找到出现次数超过一半的元素,输出-1;否则输出变量t的值。
五、运行结果
3,2,3,3
3
2,2,2,3,3
2
六、考点分析
难度级别:中等,这题相对而言还是有一点小难度,难在题目分析,具体主要考查如下:
- 学会分析题目,找到解题思路
- 学会简单的算法知识的应用
- input函数:Python 中 input() 函数接受一个标准输入数据,返回为 string 类型。
- int函数:强制将传入对象转换成整数类型
- split函数:按照指定的分隔符进行分割
- list函数:强制将参数转化成列表对象
- 学会列表的相关操作:列表声明、统计、遍历、长度等等
- 学会for循环的使用:for循环可以遍历任何有序的项及列表元素等等。
- range函数:rang(a,b),循环的时候是不包括b的,所以我们这个案例中要转变一下,要想包含b,就应该写成range(a,b+1)
- 学会if...条件判断语句的使用:满足条件才执行相应的程序
- 学会if...else双分支语句的使用:满足条件执行一种处理程序,不满足执行另一种处理程序
- print函数:用于打印输出,最常见的一个函数。
- 充分掌握for循环和列表相关操作函数的使用
PS:方式方法有多种,小朋友们只要能够达到题目要求即可!
七、 推荐资料
- 所有考级比赛学习相关资料合集【推荐收藏】
1、蓝桥杯比赛
-
蓝桥杯python选拔赛真题详解
-
蓝桥杯python省赛真题详解
-
蓝桥杯python国赛真题详解
-
历届蓝桥杯科技素养计算思维真题解析
2、考级资料
-
python等级一级真题解析【电子学会】
-
python等级二级真题解析【电子学会】
-
python等级三级真题解析【电子学会】
-
python等级四级真题解析【电子学会】
3、其它资料
-
初学python100例
- 历届蓝桥杯scratch国赛真题解析
- 历届蓝桥杯scratch省赛真题解析
- 历届蓝桥杯scratch STEMA选拔赛真题解析
- 历届蓝桥杯科技素养计算思维真题解析
- 画图-scratch编程考级99图
- 电子学会历年scratch等级考试一级真题解析
- 电子学会历年scratch等级考试二级真题解析
- 电子学会历年scratch等级考试三级真题解析
- 电子学会历年scratch等级考试四级真题解析
- 零基础学习scratch3.0【入门教学 免费】
- 零基础学习scratch3.0【视频教程 114节 免费】