python 3 0 在for中使用insert

2021-04-23 04:13:14 字數 532 閱讀 7272

首先在python 3.0手冊中有這麼個示例

>>> a = ['cat', 'window', 'defenestrate']

>>> for x in a[:]: # make a slice copy of the entire list 

...    if len(x) > 6: a.insert(0, x)

...>>> a

['defenestrate', 'cat', 'window', 'defenestrate']

對這段**稍加修改我們會發現程式死掉了

>>> for x in a: 

...    if len(x) > 6: a.insert(0, x)

...程式死掉了,是由於進入乙個無限迴圈當中。a[:]實際上是a物件的轉殖,所以在示例中我們沒有發生死迴圈,但是底面的程式是對a物件直接操作,造成不斷的增加a物件的item,而for迴圈不斷的迭代a物件,造成程式死迴圈。

所以在對物件操作時,我們要注意。在for中,如果要對物件操作,一般情況下應該對物件的副本進行迭代。

Python3 0的新改動

這篇文章主要介紹了相比於python2.6,python3.0的新特性。更詳細的介紹請參見 python3.0的文件。common stumbling blocks 本段簡單的列出容易使人出錯的變動 初學者應該注意 old print the answer is 2 2 new print the ...

Python 3 0最簡單的爬蟲

做個小專案練練手,比較有動力繼續下去,這邊參考最簡單的爬蟲程式自己抄了一下。但是因為3.0的關係,無法直接使用,根據2.0版本的 進行修改後成功了。如下 coding utf 8 import urllib.request import re 該函式用於獲取html內容 使用到urlopen的函式 ...

python3 0中各種編碼問題

目前python2.0還在使用,但可以看出python3.0才是未來的主流。因此本文主要研究的是python3中的各編碼問題。unicodeencodeerror錯誤 字元編碼錯誤 在python2中,系統預設的編碼方式是 ascii碼。字母 標點和其他字元只使用乙個位元組來表示,但對於中文字元來說...