2

私はPythonを使用しており、ここに私のコードの一部があります:

wp = open(outfile, 'w')
fields = line.split('\t')
gene_ID = fields[0]
chr = fields[1]
strand = fields[2]
start = int(fields[3])
end = int(fields[4])
bc = {'A': 'T', 'C': 'G', 'G': 'C', 'T': 'A', 'N':'N'}       
if strand == '+':
    wp.write(chr_string[start:end]) 
if strand == '-':
    newstart, newend = -(start + 1), -(end + 1)
    wp.write(bc[base.upper()] for base in chr_string[newstart:newend]) <--error pointed at this line

コード全体を実行しようとすると、次のメッセージが表示されます。

TypeError: must be str, not generator

これを促している私のコードの何が問題なのか誰かが知っていますか?

4

1 に答える 1

6

bc[base.upper()] for base in chr_string[newstart:newend]ジェネレータ式です。joinあなたは例えばメソッドを介してそれから文字列を作る必要があります:''.join(c[base.upper()] for base in chr_string[newstart:newend])

于 2012-04-27T17:39:02.537 に答える