0

正規表現と dict() を使用するこのコードを実行しようとしています。一致する要素を正しいリストに入れる必要がありますが、エラーが発生します.TypeError: 'list' object is not callable. ここで何が間違っているのか誰にも教えてもらえますか。

dir='newDSSP'
for tname in os.listdir(dir):
    file=dir+os.sep+tname
    ndfile=open(file)
    tname=dict()
    tname.setdefault('A',[[],[]])
    tname.setdefault('B',[[],[]])
    tname.setdefault('C',[[],[]])
    tname.setdefault('D',[[],[]])
    for ndline in ndfile:
        t=re.match(r'(\s+|\S+)+\t\w+\t(\w)\t(\w)\t(\w|\s)', ndline)
        k=t.group(2)
        if k =='A':

            tname['A'](0).append(t.group(3))<--- **#Error here**
            tname['A'](1).append(t.group(4))
        elif k =='B':

            tname['B'](0).append(t.group(3))
            tname['B'](1).append(t.group(4))
        elif k =='C':

            tname['C'](0).append(t.group(3))
            tname['C'](1).append(t.group(4))
        elif k =='D':

            tname['D'](0).append(t.group(3))
            tname['D'](1).append(t.group(4))
    ndfile.close()
4

2 に答える 2

8

あなたが持っている

tname['A'](0).append(t.group(3))

しかし、tname['A']2 つのリストを含むリストではありませんか? その場合、あなたは

tname['A'][0].append(t.group(3))
于 2012-04-27T03:49:23.907 に答える
1

x()は常に関数呼び出しであるため、パラメーターを使用して関数としてtname['C'](0)呼び出しようとしているようなものです。おそらく、リスト インデックスに角括弧を使用するつもりでしたか?tname['C']0

于 2012-04-27T03:49:49.843 に答える