2011-08-24 7 views
-1

문자열을 ASCII 코드로 변환해야합니다. 파이썬을 사용하고 있습니다. (L1)는 L1문자열을 ASCII 코드로 변환

의 i 번째 라인 A linelist, L1 [I]입니다 여기

b1=[ord(x) for x in l1[i]] 

하지만 같은 오류가 발생했습니다 : 나는 다음과 같이했다

Traceback (most recent call last): 
    File "./fastq_phred_filter.py", line 24, in ? 
    b1=[ord(x) for x in str(l1[i])] 
IndexError: string index out of range 

그리고

시도
b1=[ord(x) for x in str(l1[i])] 

하지만 여전히 작동하지 않습니다.

btw, 나는 오랫동안 의문을 가지고있다 : 나는 항상리스트에서 라인을 다루고있다. (또는리스트의 키) 내가리스트에서 얻은 라인인가, 문자열인가? 또는 먼저 줄을 문자열로 변환해야합니까?

들으

편집 : 코드의 큰 덩어리 :

l1= commands.getoutput('zcat '+fastqfile1) 
l2= commands.getoutput('zcat '+fastqfile2) 
f1=[] 
f2=[] 
for i in range(0,len(l1)): 
    if i % 4 == 3: 
     b1=[ord(x) for x in l1[i]] 
     ave1=sum(b1)/float(len(l1[i])) 
     b2=[ord(x) for x in str(l2[i])] 
     ave2=sum(b2)/float(len(l2[i])) 
     if (ave1 >= 20 and ave2>= 20):............. 
+0

langauge에 태그를 지정하십시오. 나는 파이썬을 추측 할 수 있지만 확신 할 수는 없다. –

+0

-1 태그를 사용하여 사용중인 언어를 지정하십시오. –

+0

죄송합니다. 파이썬을 사용하고 있습니다. – user815408

답변

1

큰 코드 덩어리로 어떤 일이 벌어지는 지 쉽게 볼 수 있습니다. 이것은 루프 인덱스로 i가있는 루프에서 발생합니까? 어쨌든, 유일한 인덱싱은 l1 [i]에서 일어나므로 l1의 길이보다 큽니다. 또한 l1이 실제로 목록이고 문자열이 아닌지 확인하십시오. string index out of range은 실제로는 문자열 인 것 같습니다.

1

나는 l1 오류 메시지에 따라 목록하지만 문자열이 아닌 추측거야. l1[i]은 표현식에서 수행하는 유일한 인덱싱입니다.

관련 문제