[英]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.