|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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 是什么意思?
非常感谢!
问题1:
通过for循环遍历列表nums的每一个元素,nums[each] == 1代表列表里如果存在1这个元素,就把变量count置0,并在下一个条件语句中打印each,也就是元素1的索引值。并且只要找到元素1就直接退出循环。
问题2:
half = nums[length // 2]表示列表nums中索引值为列表长度地板除以2的数字所在的元素,因为主要元素占比必然超过列表的一半,列表经过sort方法排序后该位置的元素如果与前面所有元素都是相同的,那么这个元素就是主要元素。
根据这个思路,下面那个循环语句作用就是将列表前面每一个元素与中间位置元素作比较,如果相等,count+1,如果最终count值达到列表长度一半以上,就代表这个元素在列表中超过一半。
综合两个问题,基本上就是在列表索引上概念还是模糊,这个不难弄明白,但是如果不能搞清楚的话后面代码长了会很吃力。
|
|