def update():
global mylist
i = j = 0
mylist[:]= []
key = input("enter student's tp")
myf = open("data.txt","r+")
ml = myf.readlines()
#print(ml[1])
for line in ml:
words = line.split()
mylist.append(words)
print(mylist)
l = len(mylist)
w = len(words)
print(w)
print(l)
for i in range(l):
for j in range(w):
print(mylist[i][j])
## if(key == mylist[i][j]):
## print("found at ",i,j)
## del mylist[i][j]
## mylist[i].insert((j+1), "xxx")
以下是错误
打印(MYLIST [i] [j])
IndexError:列表索引超出范围
我正在尝试更新文件中的内容。我将文件作为行保存在列表中,然后将每行保存为另一个单词列表。所以“mylist”是一个2D列表,但它给了我索引
的错误答案 0 :(得分:0)
您的l
变量是最后行列表的长度。其他人可能会更短。
更好的习惯用法是使用for
循环迭代列表。
但还有更好的方法。
看来你想用字符串xxx
替换“tp”(无论是什么)。更快的方法是使用正则表达式。
import re
with open('data.txt') as myf:
myd = myf.read()
newd = re.sub(key, 'xxx', myd)
with open('newdata.txt', 'w') ad newf:
newf.write(newd)