Python 缩短简单的 if 语句

Mat*_*hew 0 python if-statement

是否可以在此程序片段中缩短 if 语句?

for number in range(100):
    if (number % 4 == 0 and number % 3 == 0 and number % 2 == 0):
Run Code Online (Sandbox Code Playgroud)

Joh*_*man 5

只需使用: if number % 12 == 0:

这是因为 12 是 4、3 和 2 的最小公倍数。

在编辑:

下面是一些计算整数列表(或其他可迭代)的最小公倍数的代码:

from math import gcd

def pair_lcm(a,b):
    return a*b//gcd(a,b)

def lcm(nums):
    """computes the lcm of iterable nums"""
    m = 1
    for num in nums:
        m = pair_lcm(m,num)
    return m
Run Code Online (Sandbox Code Playgroud)

例如,

>>> lcm(range(1,11))
2520
Run Code Online (Sandbox Code Playgroud)

  • @Matthew你问如何简化“if”语句,而不是如何简化循环(问题本身没有给出其目的)。 (2认同)