wl2678287564 发表于 2022-10-8 15:21:55

21讲的课后作业 请问 这个for ……in……内嵌的 count的值是多少 为什么?

nums =
   
nums.sort()
length = len(nums)
half = nums
count = 0
   
for each in nums:
    if each == half:
      count += 1
if count > length / 2:
    print("存在主要元素,是:", half)
else:
    print("不存在主要元素!")

jackz007 发表于 2022-10-8 15:38:04

本帖最后由 jackz007 于 2022-10-8 15:54 编辑

nums =
nums . sort()               # 对列表 nums 排序得到 nums =
length = len(nums)            # length = nums 的元素个数
half = nums      # half = nums = 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 =
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 中元素总数的一半
页: [1]
查看完整版本: 21讲的课后作业 请问 这个for ……in……内嵌的 count的值是多少 为什么?