5686


pythonでテキストから単語を抽出し、リストに代入しました

[code]

    # -*- coding: utf-8 -*-
    import sys 
    title = sys.argv[1:]
    
    pare=[]
    #vocab.txtから読み取り
    for line in open(title[1]):
        line = line.split()
        i=0
        for word in line:
    
            if(i==0):
                pare.append(word)
                i+=1
    
    fp = open('distance用words.txt','w')
    
[/code]

その後、単語に割り当てられた数値に応じた単語を出力しようとした際に次のコードを書きました。

[code]

    for line in open(title[0]):
        line = line.split()
        for score in line:
            fp.write(str(pare[score]))
            fp.write('\n')
    fp.write('EXIT\n')
    
[/code]

出力結果が

[code]

    fp.write(str(pare[score]))
    TypeError: list indices must be integers, not str
    
[/code]

となり、エラーになります。どうしたら入力文字で出力できますか？


CC BY-SA 3.0
2015-02-01T06:38:55.763
5685
2015-02-02T02:46:04.390
2015-02-02T02:46:04.390
30
2155
question
python
pythonでリストのfp.writeエラー


ご質問の回答になっているか自信ありませんが、エラーを取り除くのであれば以下だと思います。

[code]

    --- a.py    2015-02-01 15:53:54.000000000 +0900
    +++ b.py    2015-02-01 15:54:04.000000000 +0900
    @@ -1,7 +1,7 @@
     for line in open(title[0]):
         line = line.split()
         for score in line:
    -        fp.write(str(pare[score]))
    +        fp.write(str(pare[int(score)]))
             fp.write('\n')
     fp.write('EXIT\n')
    
[/code]


CC BY-SA 3.0
2015-02-01T06:59:00.023
5686
2015-02-01T07:09:27.250
2015-02-01T07:09:27.250
2992
2992
5685
answer

[code]

    fp.write(str(pare[score]))
    
[/code]

のscore部を  
int(score)  
とすれば上手く行きました。ありがとうございました。


CC BY-SA 3.0
2015-02-01T07:37:11.347
5687
2015-02-02T02:40:36.440
2015-02-02T02:40:36.440
2155
2155
5685
answer