pythonでリストのfp.writeエラー


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]

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




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

[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]




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

[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]

