2017-06-23 85 views
-3

我使用的是anaconda Python 3笔记本。当我尝试将任何内容附加到列表中时,我的电脑会发疯。它变得缓慢,RAM达到95%,它不再工作。但我注意到事端,这个问题只发生在我使用for语句时。如果我用切片括号我没有这个问题,所以THI会是这样:Python,与.append()方法有问题

问题:

for element in anylist: 
     anylist.append('whatever') 

(到目前为止,我认为这一个从来没有停止工作,它可能会造成一些truobles我真的不知道)

没有问题:

for element in anylist[:]: 
     anylist.append('whatever') 

另一个细节:这一切开始之前,我输入字符串模块,操作系统模块。但是现在每次我写单个代码时都会发生这种情况。

Python是在64位,因为它必须在我的情况。 如果你能帮助我,我将不胜感激。

+1

第一个例子一直运行,因为你会不断地添加到您所循环的列表,第二个例子,通过'anylist' – depperm

回答

3

第一个例子可译为:

while there is something more in anylist add whatever to the end

这意味着该列表将增长直到系统崩溃。

所以它永远不会结束。第二个翻译为:

for the number of items in anylist add whatever to the end of the list. 

所以会加倍列表的长度。

因此,python正在做你正在告诉它做的事情(我怀疑你不是这么想的)。

+0

感谢您的帮助副本循环。我知道这是一个愚蠢的错误,我想这就是为什么我的问题得到-2。我是新来的,所以我很抱歉,如果这是一个已经回答的问题或其他问题。 –

0

尝试做:

for element in range(len(anylist)): 
    anylist.append('something')