第21讲 课后练习题,这么写可以吗
如果有一个列表,其中占比超过一半的元素称之为主要元素,那么如何获取一个列表的主要元素呢?题目给定的列表是:
请根据解题思路进行编程。
解题思路:
根据主要元素的定义,对列表进行排序操作之后,主要元素必然会出现在列表长度一半之后的一个位置上。
所以,我们只需要判断列表中是否有超过一半的元素与中间元素相同即可(如果有,中间元素为主要元素;否则,不存在主要元素)
看一下我的有什么问题吗
我的代码
m2 =
a = len(m2)
for i in m2:
print(i)
if m2.count(i) > a/2 :
print(i,'是主要元素')
break
else:
print('不存在主要元素')
答案
nums =
nums.sort()# 进行列表排序
length = len(nums)# 列表的数量
half = nums# 一半的值对应的数字
count = 0# 有多少个
for each in nums:
print(each)
if each == half:# 如果循环的值是一半的值对应的数字
count += 1# 个数+1
if count > length / 2: # 如果个数大于 全部数的一半
print("存在主要元素,是:", half)
else:
print("不存在主要元素!") 我觉得没毛病,只是没按他的解题思路而已
当然可以,你使用了 count 函数,以及利用了 for-else 结构进行实现
答案的代码是在对应课时下所学,且 count 函数,自己实现统计
另外 for-else 在 21 课时还没学到,当然不会在这答案中使用
页:
[1]