写在一行

时间:2018-10-11 21:23:05

标签: python

可以将以下代码写成一行:

for num in range(2000, 3201):
    if num % 7 == 0 and num % 5 != 0:
        nums.append(str(num))

我想到了:

(nums.append(str(num))) for num in range(2000, 3201) if (num % 7 == 0) and (num % 5 != 0)

但它不起作用

3 个答案:

答案 0 :(得分:2)

您几乎完全正确,例如没有将其添加到列表理解中:

nums=[str(num) for num in range(2000, 3201) if (num % 7 == 0) and (num % 5 != 0)]

答案 1 :(得分:0)

应该是

[str(num) for num in range(2000, 3201) if num % 7 == 0 and num % 5 == 0]

答案 2 :(得分:0)

请注意,if num % 7 == 0等效于if not num % 7if num % 5 != 0等效于if num % 5

nums = [str(num) for num in range(2000, 3201) if not num % 7 and num % 5]