计算列表中可被另一个数整除的对象的个数



我在这里是个新手,很难弄清楚这一点!

本质上,我想让这个函数计算列表中能被2整除的数。

def listDivide(numbers, divide = 2):
result = 0
for i in numbers:
if i % divide == 0:
result += 1
print(result)
listDivide([1 ,3 ,6 ,2 ,4])

输出是:

3
2

列表似乎在循环中被处理了一次,正确地计算出可以被2整除的对象(没有使用模的余数),然后返回循环,根据索引计算列表中的对象数量,然后将它们除以2。例,1, 2, 3, 4, 5

我一定错过了一些超级简单的东西,但我似乎找不出来。任何帮助都将受到赞赏,并提前感谢大家!

在您发布的代码中,如果您希望函数返回计数,则缺少的元素是您不返回任何内容。如果你用return代替print,你会得到:

def listDivide(numbers, divide = 2):
result = 0
for i in numbers:
if i % divide == 0:
result += 1
return result
print(listDivide([1 ,3 ,6 ,2 ,4]))
# 3

作为题外话,在Python中,布尔值False可以被视为0,True可以被视为1。这意味着如果你能把数字列表转换成布尔值列表,你就可以取和来得到计数。例如:

def listDivide(numbers, divide = 2):
return sum(n % divide == 0 for n in numbers)
listDivide([1 ,3 ,6 ,2 ,4])
# 3

这将是一个列表:

[n % divide == 0 for n in numbers]

:

[False, False, True, True, True]

所以这些的和是3

相关内容

最新更新