尝试检查整数列表中每个元素的条件

foo*_*209 1 python

我正在尝试定义一种方法来检查列表的每个元素是否是参数的一个因素.

这就是我所拥有的:

def factorall(x):
if all(x % num  for num in nums) == 0:
    return True
else:
    return False
Run Code Online (Sandbox Code Playgroud)

(在这种情况下,nums是1到10之间的整数列表)

但是,对于任何数字,它都返回true.我假设发生了这种情况,因为它只检查1然后返回True,但是在返回True之前,不应该全部()检查列表中的每个元素吗?

我对所有()有点不熟悉,所以我可能错误地实现了它.有人能指出我正确的方向吗?

谢谢!

Jor*_*ley 7

你应该用not any而不是全部

def factorall(x):
    return not any(x%num for num in nums) #if any of these is a value other than 0
Run Code Online (Sandbox Code Playgroud)

或者如果你想要它就像你现在拥有它一样

def factorall(x):
    return all(x%num==0 for num in nums)
Run Code Online (Sandbox Code Playgroud)