python 列表理解,创建 100 个数字除以 7 的列表

python list comperhension, creating list of 100 numbers divided by 7

我正在做一些关于 Python 编程的练习,我偶然发现了一个问题,这可能是微不足道的,但我的大脑仍然无法理解它。

我需要使用列表理解创建一个可被 7 整除的前 100 个数字的列表(因此 num % 7 == 0)。一开始以为是"ehh easy"写的是

list_of_num = [i for i in range(100) if i % 7 ==0]

然后我突然意识到这不是老师要求我做的事情(他特别声明必须在没有任何库或方法的情况下在列表创建中完成)。我该如何处理?

与其生成很多数字并保留好的数字,不如只生成好的数字怎么样?乘以 7,你只会得到 7

的倍数
list_of_num = [i * 7 for i in range(100)]
print(len(list_of_num), list_of_num ) # 100 [0, 7, 14, ..., 693]

或使用rangestep参数:

list_of_num = [i for i in range(0, 7 * 100, 7)]

如果你想从 7 开始并且仍然得到一百

list_of_num = [i * 7 for i in range(1, 101)]
print(len(list_of_num), list_of_num ) # 100 [7, 14, ..., 693, 700]

# or
list_of_num = [i for i in range(7, 7 * 101, 7)]

您可以使用:

list_of_num = [i for i in range(7, 701, 7)]

或者您可以使用:

list_of_num = list(range(7, 701, 7))

此处您仅使用内置函数 range,从 7 开始,这是第一个可被 7 整除的数字,直到 700 为止7,有步骤7将保证生成的每个数字都可以被7整除

我认为您的回答没有任何问题:您既没有在任何地方使用库(没有 import 语句,也没有使用方法(范围是标准 python 函数)。

你的错误是你只考虑了小于 100 的数字。

您应该改为创建 7 的倍数。

list_of_num = [7*i for i in range(100)]

list_of_num = [7*i for i in range(1, 101)]

如果您想从 7 而不是 0 开始。