本帖最后由 jackz007 于 2022-10-8 15:54 编辑 nums = [2, 2, 4, 2,2, 6, 7]
nums . sort() # 对列表 nums 排序得到 nums = [2 , 2 , 2 , 2 , 4 , 6 , 7]
length = len(nums) # length = nums 的元素个数
half = nums[length // 2] # half = nums[3] = 2
count = 0 # 计数器置 0
for each in nums: # 循环枚举 nums 中每一个元素
if each == half: # 如果该元素的值是 2
count += 1 # 计数器的值加 1
if count > length / 2: # 循环结束的时候,count = 4,肯定大于 nums 元素个数的一半 7 // 2 = 3
print("存在主要元素,是:", half) # 打印信息
else:
print("不存在主要元素!")
这样写代码更加简单并且容易理解:nums = [2 , 2 , 4 , 2 , 2 , 6 , 7]
for each in set(nums): # set(nums) 的内容为 {2 , 4 , 6 , 7}
if nums . count(each) > len(nums) // 2: # 如果元素 each 的个数超过了 nums 中元素总数的一半
print("存在主要元素,是:" , each)
break # 结束循环
else: # 如果循环过程始终没有被 break
print("不存在主要元素。") # 那就说明 nums 中不曾有任何一个元素的个数超过 nums 中元素总数的一半
|