Skip to main content
 首页 » 编程设计

python之如何在单行 'for' 循环中减少以下代码

2025年05月04日13bjzhanghao

我有以下代码。

for i in range(1,number): 
    if (number%i) == 0: 
        divisorSum += i    

如何在 python 中将这段代码缩减为一行

请您参考如下方法:

这是一种方法:

divisorSum += sum(i for i in range(1, number) if number % i == 0) 

这是比原作更易读还是更差,由旁观者自行判断。

我使用 += 来使代码与您的代码完全相同。如果在循环之前将 divisorSum 初始化为零,则可以将 += 替换为 = 并摆脱初始化。

最后,值得注意的是您的代码仅计算 proper divisors .如果您确实需要包含数字本身,请使用 range(1, number + 1)。