重複する単語Python

2
2022.01.14

私は次の例のように重複した単語を検出するプログラムを作りたい:
"少なくとも 1 つの値を入力する必要があります。
平均を計算するために入力された"
「入力」が繰り返されていることがわかりますし、私はこのタイプのケースを検出する方法を見つけたいと思います。\

archivo = str(input("Ingrese la ubicación del archivo: "))
inf = open(archivo, "r")

lineas = inf.readlines()
lin = []

for a in lineas:
    lin.append(a.strip())
    
cadena = ' '.join([str(item) for item in lin])
list_cadena = cadena.split()

私はこれを行ったが、繰り返される単語は同じ行に入ることができるか、テキストの行の最後にあり、次の行の先頭に別のものが起こる可能性があるため、繰り返し単語を検出する方法がわかりません。

回答
2
2022.01.14

str.strip()は空白を削除することです。代わりに、単語をリストに区切るためにstr.split()が必要です。すべての単語のフラットリストを取得するには、すべての行にわたって、リストを作成するときにappend()の代わりにextend()を使用します(そうでない場合はリストのリストが表示されます)。ここでは、withステートメントが役立ち、ファイルを手動で閉じる必要はありません。

単語のリストがある場合は、単語のリストを反復処理して各単語を前の単語と比較し、同じ場合に何らかのアクション(印刷出力など)をトリガーすることができます。

archivo = input("Ingrese la ubicación del archivo: ")

with open(archivo, "r") as inf:
    lineas = inf.readlines()
    lin = []
    for a in lineas:
        lin.extend(a.split())

for i in range(1, len(lin)):
    if lin[i - 1] == lin[i]:
        print(f'Duplicated word: "{lin[i]}" at index {i}.')

あなたの例を保存するとき

少なくとも 1 つの値を入力する必要があります
平均を計算するために入力

テキストファイルとして、上記のコードを実行し、入力としてファイル名を入力すると、出力は次のようになります。

重複した単語: インデックス 7 で "入力" します。