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は、amet、consectetur adipiscingelitに座っています。ライブソースはピットに矢を放ちますか?Laoreet喪のligula注文。Ullamcorperレイヤーの屋外ポーチまたは車両?中期起業家のアルコール。今度はソースを見てください、しかし常に私のソースです。滅菌されたシットニブケア。モーリス最大のタンパク質製造臨床栄養。そのリレー要素自体。推奨
コードを実行すると、次のようになります。
統計は次のとおりです。
行数:6
任意の要素をお勧めします
したがって、コードはコンマとピリオド文字を削除しますが、テキストの前の5行も削除し、最後の行のみを出力します。私はここで何が間違っているのですか?
そのはず
for i,item in enumerate(fileList):
fileList[i] = item.replace(',', "").replace('.', "")
列挙せずに、
for i in range(len(fileList)):
fileList[i] = fileList[i].replace(',', "").replace('.', "")
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加