python - 当我删除数组 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:列表索引超出范围
为什么 ?我该如何解决
解决方案
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
我认为您的程序是计算每个单词的出现次数。糟糕的逻辑。
推荐阅读
- spring - 如何在 mule 4 中将 porpery 值与字符串连接起来
- java - Unable to wire in dependency using MockBean in WebMVCTest
- c++ - Providing a default value as function for a template
- azure - Issue in sharing folders with other users in azure file share
- sql-server - SQL Query taking much longer to select than inserting into a temp table
- c++ - 如何创建等效于 Objective-C 完成块的 c++ 作为参数
- ios - CAShapeLayer is off center
- stimulusjs - 刺激 - 如何在连接时设置变量
- typescript - 在表上插入或更新违反外键约束 TelephoneContact
- css - 更改 Switch Material UI 的颜色