好的,这是我的问题。我正在尝试这样的事情:
for i in big_list:
del glist[:]
for j in range(0:val)
glist.append(blah[j])
我们的想法是重置列表并将其重用于下一组数据点。 问题是,出于某种原因,如果第一个列表有3个点,
glist[0]
glist[1]
glist[2]
下一个列表将从索引3继续,并将最后3个元素存储在那些索引中
glist[0] = 4th elem of new list
glist[1] = 5th elem of new list
glist[2] = 6th elem of new list
glist[3] = 1st elem of new list
glist[4] = 2nd elem of new list
glist[5] = 3rd elem of new list
我确定这是分配空间的问题。但是我怎么能实现这个del g_list [:]所以结果是,
glist[0] = 1st elem of new list
glist[1] = 2nd elem of new list
glist[2] = 3rd elem of new list
glist[3] = 4th elem of new list
glist[4] = 5th elem of new list
glist[5] = 6th elem of new list
从循环内分配变量不是一种选择。有什么想法吗?
答案 0 :(得分:4)
将del glist[:]
更改为glist = []
。您不需要在Python中“重用”或“重新分配”,垃圾收集器将为您处理。
另外,在两个循环中使用'i'作为循环变量。这迟早会让你感到困惑。 :)
答案 1 :(得分:1)
你可以尝试
glist=[]
答案 2 :(得分:1)
del glist[:]
可以清除列表。您需要向我们展示您的确切代码。如下所示,您所描述的行为不会发生。 append
之后的del a[:]
将项目置于索引0。
>>> a = [1,2,3]
>>> del a[:]
>>> a
[]
>>> a.append(4)
>>> a
[4]