在python中重新分配列表

gro*_*rtn 0 python collections memory-management list

好的,这是我的问题。我正在尝试这样的事情:

for i in big_list:
   del glist[:]

   for j in range(0:val)
         glist.append(blah[j])
Run Code Online (Sandbox Code Playgroud)

想法是重置列表,并将其重新用于下一组数据点。问题是由于某种原因,如果第一个列表有3分,

glist[0]
glist[1]
glist[2]
Run Code Online (Sandbox Code Playgroud)

下一个列表将从索引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
Run Code Online (Sandbox Code Playgroud)

我确定这是分配空间的问题。但是我如何才能实现此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
Run Code Online (Sandbox Code Playgroud)

从循环内部分配变量不是一种选择。有任何想法吗?

Len*_*bro 5

更改del glist[:]glist = []。您不需要在Python中“重用”或“重新分配”,垃圾收集器将为您处理这些事情。

同样,在两个循环中都将“ i”用作循环变量。这迟早会让您感到困惑。:)

  • @grobartn:您需要定义“没有工作”。或提供一个例子。最好使用修改后的代码更新您的问题或创建一个新问题。 (2认同)