首页 > 解决方案 > 当我删除数组 Python 中的值时出现错误

问题描述

`运行以下代码时出现错误:

dosya=open("a.txt","r").read()
dosya=dosya.split(" ")
uzun=len(dosya)
sayac=[0 for i in range(len(dosya))]
for i in range(uzun):
    for j in range(i+1,uzun):
        if(dosya[i]==dosya[j]):
            del dosya[j]
            sayac[i]+=1
    sayac[i]+=1
    del dosya[i]
    i+=1
print sayac

`

错误:IndexError:列表索引超出范围

为什么 ?我该如何解决

标签: pythonindexoutofrangeexception

解决方案


dosya=open("a.txt","r").read()
dosya=dosya.split(" ")
uzun=len(dosya)
sayac=[0 for i in range(len(dosya))]
for i in range(uzun):
    for j in range(i+1,uzun):
        if(dosya[i]==dosya[j] and dosya[i]!=""):
            #del dosya[j]
            dosya[j] = ""
            sayac[i] += 1
    sayac[i] += 1
    #del dosya[i] since you've already parsed it. No need of deleting it.
    #i+=1   Since i will automatically increment.
print sayac

我认为您的程序是计算每个单词的出现次数。糟糕的逻辑。


推荐阅读