преобразовать строку в код ASCII - PullRequest
0 голосов
/ 24 августа 2011

Мне нужно преобразовать строку в код ASCII. Я использую Python. Я сделал, как показано ниже:

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

здесь l1 - список строк, l1 [i] - i-я строка l1

но я получил ошибку вроде:

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

но все равно не работает.

Кстати, у меня давний вопрос: я всегда имею дело со строкой в ​​списке строк (или ключом в списке), является ли строка, которую я получил из списка, строкой? Или мне сначала нужно сначала преобразовать строку в строку?

ТНХ

редактировать: большие куски кода:

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):.............

Ответы [ 2 ]

1 голос
/ 24 августа 2011

Было бы легче увидеть, что происходит с большим фрагментом кода.Это происходит в цикле с I в качестве индекса цикла?В любом случае, единственное индексирование происходит в l1 [i], так что происходит, когда ваш i больше длины l1.Также убедитесь, что l1 действительно список, а не строка.string index out of range звучит так, как будто это строка.

1 голос
/ 24 августа 2011

Я собираюсь догадаться, что l1 - это не список, а строка, основанная на сообщении об ошибке. l1[i] - это единственная индексация, которую вы делаете в выражении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...