Python问题,为什么得不到结果
nums =nums.sort()
major = nums
count = 0
A = 0
B = 0
for each in nums:
if major == each:
# 到这一步后为什么进不到if语句块里。
if nums.count(major) / len(nums) > 3.0:
A = each
print(A)
else:
B = A
else:
major = each
print(A,B) 在你提供的代码中,存在一个逻辑错误导致无法进入 if 语句块。问题出在条件判断上,if nums.count(major) / len(nums) > 3.0: 这个条件是不太符合预期的。
我理解你想要判断 major 在 nums 中出现的比例是否大于 30%,如果是的话,将 major 赋给变量 A 并打印出来。但是你的判断条件写成了 if nums.count(major) / len(nums) > 3.0:,这个条件的意思是判断 major 在 nums 中出现的次数除以 nums 的长度是否大于 3.0。显然这不是你的本意。
以下是修正后的代码:
nums =
nums.sort()
major = nums
count = 0
A = 0
B = 0
for each in nums:
if major == each:
count += 1
if count / len(nums) > 0.3:# 判断 major 在 nums 中出现的比例是否大于 30%
A = each
print(A)
else:
major = each
B = A
print(A, B)
修正后的代码中,我修改了条件判断为 if count / len(nums) > 0.3:,这样才能正确地判断 major 在 nums 中出现的比例是否大于 30%。希望这样可以解决你的问题。如果还有其他问题,请随时提问。 问题出在nums.count(major) / len(nums) > 3.0这个条件判断上。在这个条件判断中, nums.count(major)返回的是major在nums中出现的次数,而len(nums)返回的是nums的长度。因此, nums.count(major) / len(nums)得到的结果是major在nums中出现的频率。因为major的值是nums中的一个元素,所以它在nums中出现的频率最大也只能是 1.0。所以条件判断nums.count(major) / len(nums) > 3.0永远不会成立,导致无法进入if语句块。
如果你想要判断某个元素在nums中出现的次数是否大于 3,你可以使用collections.Counter来统计每个元素出现的次数,然后再进行判断。例如:
from collections import Counter
nums =
counter = Counter(nums)
for num, count in counter.items():
if count > 3:
print(num)
这样就可以得到在nums中出现次数大于 3 的元素了。
页:
[1]