繁体   English   中英

检查列表中的所有元素是否可被给定整数整除

[英]Check if all the elements in that list are divisible by some given integer or not

给定一个列表,我想检查该列表中的所有元素是否可以被给定的整数整除。 基于此,我必须返回一个布尔值。

l=[10,30,40,20]

例如-此列表的所有元素都可以被5整除。然后,我将返回True 对于6,我将返回False

我能想到的一种方法是生成一个由布尔值组成的数组,然后AND它们进行“ AND运算。

blist=[x%5==0 for x in l]
# [False, False, False, False]
# AND THE ELEMENTS

但是这种方法感觉不好。 任何人都可以提出一种更简单的pythonic方法。

首先,要模除( % ),因为它想看是否除以5 ,所以要检查的是余数,而不是除法的结果。

您可以使用all()内置函数(它会在锡盒上显示内容),但是您不需要生成列表,而可以使用生成器表达式

all(x%5 == 0 for x in l)

这具有懒惰的优点,因此,一旦值不被整除,它将返回,从而节省了计算

使用列表推导是pythonic的。 而且您需要使用mod而不是div。

使用all内置

res = all([x%5==0 for x in l])

您可以通过以下方式更有效地执行此操作

res = all(x%5 == 0 for x in l)

使用生成器表达式。 在第一种情况蟒生成所有模的值的列表,在第二种情况下,因为它们是由需要的是所生成的值all ,并且因此仅产生到第一非整除的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM