附加到多次运行的循环中的列表只有一个项目

时间:2018-03-21 17:14:32

标签: python list

所以我希望列表中的所有7n-6项都达到365(描述我想要的数字的最佳方式),我使用了一个循环,因为我很懒但是附加只打印一个值,这是最后一个术语。我想要打印所有值,追加似乎不起作用。我怎样才能做到这一点? 我的代码:

for i in range(1,365,7):
    Thursdays = []
    Thursdays.append(i)

print(Thursdays)

此代码的结果是:

[358]

这只是最后一个值。

5 个答案:

答案 0 :(得分:0)

您正在循环中每次迭代时将列表Thursdays重置为空列表。将变量声明移到循环之外,以便将变量声明一次,然后在循环的每次迭代中追加到它:

Thursdays = []
for i in range(1,365,7):
    Thursdays.append(i)

print(Thursdays)

答案 1 :(得分:0)

循环的每次迭代,您将Thursdays重置为空列表,而不是事先定义它:

Thursdays = []
for i in range(1,365,7):
    Thursdays.append(i)

print(Thursdays)

,并提供:

[1, 8, 15, 22, 29, 36, 43, 50, 57, 64, 71, 78, 85, 92, 99, 106, 113, 120, 127, 134, 141, 148, 155, 162, 169, 176, 183, 190, 197, 204, 211, 218, 225, 232, 239, 246, 253, 260, 267, 274, 281, 288, 295, 302, 309, 316, 323, 330, 337, 344, 351, 358]

注意:您可以将range(...)调用传递给list()函数;无需任何for-loop

list(range(1, 365, 7))

答案 2 :(得分:0)

您每次都将列表重置为空列表。

应该是:

thursdays = []
for i in range(1,365,7):
    thursdays.append(i)
print(thursdays)

使用像PythonTutor这样的工具来逐步执行并遵循这样的代码是很有用的。 http://www.pythontutor.com/visualize.html#mode=edit

答案 3 :(得分:0)

Append将适用于您想要的内容,但请考虑当前代码的编写方式:每次循环执行迭代时,Thursdays都会重新定义为空列表。 Thursdays应该在循环的父作用域中定义。此外,由于范围(start, stop, step)是半开放时间间隔[start, stop),如果您希望Thursdays中存储的值最多包含365并且包括365,则应使用365 + 1(或者365 + dx对于一些任意小的dx)停止。

Thursdays = []

for i in range(1, 365 + 1, 7):

    Thursdays.append(i)

print(Thursdays)

其输出将为:

[1, 8, 15, 22, 29, 36, 43, 50, 57, 64, 71, 78, 85, 92, 99, 106, 113, 120, 127, 134, 141, 148, 155, 162, 169, 176, 183, 190, 197, 204, 211, 218, 225, 232, 239, 246, 253, 260, 267, 274, 281, 288, 295, 302, 309, 316, 323, 330, 337, 344, 351, 358, 365]

答案 4 :(得分:-1)

星期四= [] 我在范围内(1,365,7):     Thursdays.append(I) 打印(星期四)