Python .replace() 函数无法正常工作



我试图弄清楚为什么python中的.replace 函数无法正常运行。我昨天花了一整天的时间寻找答案,但可惜没有找到答案。

我正在尝试打开并读取一个文件,将其复制到列表中,计算列表中的行数并删除所有标点符号(即、! ?除了删除标点符号之外,我可以做所有事情(并且我必须使用 .replace 函数而不是导入模块(。

with open('Small_text_file.txt', 'r') as myFile:        #adding lines from file to list
contents = myFile.readlines()
fileList= []
# punctuation = ['(', ')', '?', ':', ';', ',', '.', '!', '/', '"', "'"]
for i in contents:
fileList.append(i.rstrip())
print('The Statistics are:n','Number of lines:', len(fileList)) #first part of question

for item in fileList:
fileList = item.replace(',', "")
fileList = item.replace('.', "")
print(fileList)

"小文本文件"是:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. 紫薇苣苔藓?Laoreet luctus ligula laoreet ut. Vestibulum ullamcorper accumsan velit vel vehicula? Proin tempor lacus arcu.Nunc at elit condimentum, semper nisi et, condimentum mi. 在 venenatis blandit nibh at sollicitudin.前庭 dapibus mauris at orci maximus pellentesque. Nullam id elementum ipsum.暂停

运行代码将返回以下内容:

统计数据如下:

行数:6

Nullam id elementum ipsum Suspendisse

因此,代码确实删除了逗号和句点字符,但它也删除了文本的前 5 行,只打印最后一行。我在这里做错了什么?

使用enumerate

for x, item in enumerate(fileList): 
fileList[x] = item.replace(',', "").replace('.', "") 

备注item.replace()返回需要存储在列表右侧索引中的替换字符串。enumerate可帮助您在循环访问列表时跟踪索引。

它应该是

for i,item in enumerate(fileList):
fileList[i] = item.replace(',', "").replace('.', "")

没有枚举,

for i in range(len(fileList)):
fileList[i] = fileList[i].replace(',', "").replace('.', "")

最新更新