2017-01-17 22 views
-2

私は現在、ユーザの文章を2つの変数unique_wordsと位置に圧縮するプログラムを作成しています。ユニークな単語は、ユーザーの文章からすべてのユニークな単語になりますので、例えば、 "猫はマットに座って"ユニークな単語は "猫、座って、マット"となり、位置は123415になります。これらの両方をテキストファイルに保存します。Python 3x TypeError:リストインデックスは、strではなく整数またはスライスでなければなりません

私はかなり新しくコーディングしているので、私はそれが私のコードで大文字と句読点を保持することができないと思うので、辞書を使いたくないのが望ましいです。

その後、私は何をできるようにしたいことは、たとえば、私は私のコードはそうのようなものを見てみたいので、テキストファイルから戻ってこれらを抽出し、2つの別々の変数に格納している:

list_1 = [the, cat, sat, on, mat] 
list_2 = [1, 2, 3, 4, 1, 5] 
list_3 = [] 

for i in list_2: 
    list_3.append(list_1[i]) 

しかし、私はこれは私の実際のコードで行うとき:

for l in positions_File: 
     orig_sntnce.append(uqwordsFile[l]) 
    print(orig_sntnce)` 

私は TypeError: list indices must be integers or slices, not str は私が何とか「スライス」にユニークな言葉が含まれている私のリストを変換する必要があると思うのエラーを取得しますか?私は本当にこれを行う方法に固執していますか?私はリストを分割しようとしましたが、これは再び元の文の句読点と大文字を維持できないようにします。

+1

'positions_File'の内容を確認してください。数字のリストではなく、文字列のリストです。おそらくあなたは文字列形式の数字を持っています –

+2

'str'を読んでいるので、' int(l) 'で' int'に変換しなければなりません。 'uqwordsFile(int(l))'を試してください。 –

+0

'uqwordsFile [int(l)]'を使ってインデックスがintであることを確認できますが、おそらく入力を確認する必要があります。 – jswetzen

答えて

-2

list_1の要素は、list_1 = ['the'、 'cat'、 'sat'、 'on'、 'mat']、一重引用符/二重引用符がなく、リスト2に5 list_1には5つの要素しかないため、エラーにつながる要素として扱われるため、0,4のみから索引を付けることができます。

関連する問題