'range' object doesn't support item deletion

来源:互联网 发布:绝地求生罗技g502编程 编辑:程序博客网 时间:2024/06/05 19:58
def localWords(feed1,feed0):    import feedparser    docList=[]; classList = []; fullText =[]    minLen = min(len(feed1['entries']),len(feed0['entries']))    for i in range(minLen):        wordList = textParse(feed1['entries'][i]['summary'])        docList.append(wordList)        fullText.extend(wordList)        classList.append(1) #NY is class 1        wordList = textParse(feed0['entries'][i]['summary'])        docList.append(wordList)        fullText.extend(wordList)        classList.append(0)    vocabList = createVocabList(docList)#create vocabulary    top30Words = calcMostFreq(vocabList,fullText)   #remove top 30 words    for pairW in top30Words:        if pairW[0] in vocabList: vocabList.remove(pairW[0])    trainingSet = range(2*minLen); testSet=[]   #create test set  此处加上list    for i in range(20):        randIndex = int(random.uniform(0,len(trainingSet)))        testSet.append(trainingSet[randIndex])        del(trainingSet[randIndex])      trainMat=[]; trainClasses = []    for docIndex in trainingSet:#train the classifier (get probs) trainNB0        trainMat.append(bagOfWords2VecMN(vocabList, docList[docIndex]))        trainClasses.append(classList[docIndex])    p0V,p1V,pSpam = trainNB0(array(trainMat),array(trainClasses))    errorCount = 0    for docIndex in testSet:        #classify the remaining items        wordVector = bagOfWords2VecMN(vocabList, docList[docIndex])        if classifyNB(array(wordVector),p0V,p1V,pSpam) != classList[docIndex]:            errorCount += 1    print('the error rate is: ',float(errorCount)/len(testSet))    return vocabList,p0V,p1Vny=feedparser.parse('http://newyork.craigslist.org/stp/index.rss')sf=feedparser.parse('http://sfbay.craigslist.org/stp/index.rss')vocabList,pSF,pNF = localWords(ny,sf)

上面代码中trainingSet = range(2*minLen);报如下错误:

python3.x , 出现错误 ‘range’ object doesn’t support item deletion
原因:python3.x range返回的是range对象,不返回数组对象
解决方法:

trainingSet = range(2*minLen);改成trainingSet = list(range(2*minLen));
阅读全文
0 0
原创粉丝点击