如何检查列表中每个项目的模数除法的结果,并检查每个数字是否满足条件

时间:2018-02-04 21:35:03

标签: python python-3.x

我意识到我的问题标题可能有点令人困惑,所以我会给出背景信息。我有代码,它首先生成一个随机数,然后根据该范围的随机数创建一个列表(随机数,随机数+15)。

我想要做的是创建一个if语句,如果该范围内的每个项目都不能被输入的数字除,那么它将返回True,然后执行应该发生的任何事情。 (我为此使用Python 3)

例如,如果我的列表为[8, 9, 10, 11, 12]且输入的数字为5,则应检查中的每个数字是否的余数为0(在在这种情况下,列表不会满足10 % 5 == 0)这个条件。因为这不是这种情况,所以代码将查找else语句。

我有一些想法,但没有一个是有效的。我列出了我记得的两个人。

if all(x % distance == 0 for x in jagX):

if (all(jagX) % distance == 0):

出于某种原因,这些总是返回true,即使我有目的地使用了输入,每次都会导致这些if语句为假(我会将距离设为2作为测试,以查看当语句为false时是否识别)

1 个答案:

答案 0 :(得分:0)

如果将any()与生成器表达式一起使用,可以构建如下:

代码:

def test_zero_modulo_in_list(list_to_test, modulo):
    return not any(i % modulo == 0 for i in list_to_test)

测试代码:

a_list = [8, 9, 10, 11, 12]

print(test_zero_modulo_in_list(a_list, 5))
print(test_zero_modulo_in_list(a_list, 13))

结果:

False
True