可以初始化循环内的列表,并在同一循环中将对象追加到列表中,而不会在启动它时始终清除列表?
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)
但它看起来不太好看.
在此先感谢,抱歉我的英语:)
您可以定义函数以接收默认参数:
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)
这将起作用,因为默认参数仅计算一次.