将一堆整数与if语句中的变量进行比较

时间:2014-11-07 03:12:13

标签: python if-statement comparison

我想将for循环中的s与一堆5倍数的数字进行比较,我不想写出所有or'介于两者之间。有没有更简单的方法来写这个?

for s in range(0,50):
    lst = []
    if s == 5,10,15,20,25,30,35,40,45:
         lst.append(" ")
    else:
         lst.append(letter) #letter is defined earlier

当然,这与我编写它的方式不正确,并且会出现一堆错误。

1 个答案:

答案 0 :(得分:1)

这是 1 in operator

if s in (5, 10, 15, 20, 25, 30, 35, 40, 45):

但是,在这种特定情况下,你可以看看这个号码是否可被5整除:

if not s % 5:
# or
if s % 5 == 0:

此外,您需要将此行移到循环之外:

lst = []

否则,每次迭代都会重新定义lst


1 在Python 3.3或更高版本中,在这里使用set literal而不是元组文字会更有效:

if s in {5, 10, 15, 20, 25, 30, 35, 40, 45}:

较新版本的Python非常智能,可以识别这样的常量,只评估一次而不是每次遇到它们。因此,最好使用具有O(1)(常量)查找时间的集合,而不是具有O(n)(线性)查找时间的元组。