如何初始化循环中的列表然后追加?

Hub*_*chr 0 python loops list

可以初始化循环内的列表,并在同一循环中将对象追加到列表中,而不会在启动它时始终清除列表?

for j in range(5):    
  mylist=[]
  mylist.append(j)
Run Code Online (Sandbox Code Playgroud)

结果将是一个包含一个元素的列表,但当然我想要一个包含5个元素的列表.有一个很好的方法吗?

我问,因为我需要初始化函数中的列表并多次使用此函数,每次使用该函数时都不清除列表,而是附加新对象.你明白我的意思吗?目前我正在使用这样的东西:

if first == True:
  mylist = []
  first = False

mylist.append("bla")
Run Code Online (Sandbox Code Playgroud)

但它看起来不太好看.
在此先感谢,抱歉我的英语:)

Chr*_*ian 7

您可以定义函数以接收默认参数:

def f(element, L = []):
    L.append(element)
    print L       # you can also use 'return L'

# test
for i in range(5):
    f(i)
Run Code Online (Sandbox Code Playgroud)

输出:

[0]
[0, 1]
[0, 1, 2]
[0, 1, 2, 3]
[0, 1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)

这将起作用,因为默认参数仅计算一次.