鱼C论坛

 找回密码
 立即注册
查看: 706|回复: 3

[已解决]21讲课后题求助

[复制链接]
发表于 2021-8-5 10:36:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
求助两个问题,谢谢!
问题1
>>> count = nums.count(1)
>>> length = len(nums)
>>> for each in range(length):
...     if nums[each] == 1:
...         count -= 1
...     if count == 0:
...         print(each)
...         break
...
代码中的 if nums[each] == 1:
...         count -= 1
...     if count == 0:
...         print(each) 是什么意思啊?


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

中的half = nums[length // 2]是什么意思?
中的for each in nums:
    if each == half:
        count += 1 是什么意思?

非常感谢!
最佳答案
2021-8-5 11:00:11
问题1:
通过for循环遍历列表nums的每一个元素,nums[each] == 1代表列表里如果存在1这个元素,就把变量count置0,并在下一个条件语句中打印each,也就是元素1的索引值。并且只要找到元素1就直接退出循环。

问题2:
half = nums[length // 2]表示列表nums中索引值为列表长度地板除以2的数字所在的元素,因为主要元素占比必然超过列表的一半,列表经过sort方法排序后该位置的元素如果与前面所有元素都是相同的,那么这个元素就是主要元素。
根据这个思路,下面那个循环语句作用就是将列表前面每一个元素与中间位置元素作比较,如果相等,count+1,如果最终count值达到列表长度一半以上,就代表这个元素在列表中超过一半。

综合两个问题,基本上就是在列表索引上概念还是模糊,这个不难弄明白,但是如果不能搞清楚的话后面代码长了会很吃力。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-5 11:00:11 | 显示全部楼层    本楼为最佳答案   
问题1:
通过for循环遍历列表nums的每一个元素,nums[each] == 1代表列表里如果存在1这个元素,就把变量count置0,并在下一个条件语句中打印each,也就是元素1的索引值。并且只要找到元素1就直接退出循环。

问题2:
half = nums[length // 2]表示列表nums中索引值为列表长度地板除以2的数字所在的元素,因为主要元素占比必然超过列表的一半,列表经过sort方法排序后该位置的元素如果与前面所有元素都是相同的,那么这个元素就是主要元素。
根据这个思路,下面那个循环语句作用就是将列表前面每一个元素与中间位置元素作比较,如果相等,count+1,如果最终count值达到列表长度一半以上,就代表这个元素在列表中超过一半。

综合两个问题,基本上就是在列表索引上概念还是模糊,这个不难弄明白,但是如果不能搞清楚的话后面代码长了会很吃力。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-5 11:09:07 | 显示全部楼层
  1. if nums[each] == 1:
  2. ...         count -= 1
  3. ...     if count == 0:
  4. ...         print(each) 是什么意思啊?
复制代码

找到 数字 1在这列表出现的最后一个位置
第二个是找出主要元素,我猜主要元素是应该是占该列表数字过半的元素,
它前边先排了个队,要是有主要元素,那么,此时它应该在列表中间位置,即从0开始到中间都是它,下面每次找到该元素count就加一,当count大于这个列表长度一半时,这个元素就是主要元素
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-5 11:25:23 | 显示全部楼层
非常感谢 每一个回答问题的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-12 09:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表