简单滴滴 发表于 2022-9-19 16:52:37

第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("不存在主要元素!")

ZhKQYu 发表于 2022-9-19 18:14:42

我觉得没毛病,只是没按他的解题思路而已

Twilight6 发表于 2022-9-19 20:17:49



当然可以,你使用了 count 函数,以及利用了 for-else 结构进行实现

答案的代码是在对应课时下所学,且 count 函数,自己实现统计

另外 for-else 在 21 课时还没学到,当然不会在这答案中使用

页: [1]
查看完整版本: 第21讲 课后练习题,这么写可以吗