Правильный синтаксис для нескольких циклов с целыми числами в Python - PullRequest
0 голосов
/ 02 марта 2019

Я работаю над циклом, который в основном выглядит следующим образом

MyList = ['cttgaaat',attcggat',gtatcaag'...] 

for value in text_file:
     print(key_nucleotide_position) 

key_nucleotide_position - это заданное число из текстового файла, которое будет возвращать что-то вроде этого

In [1]: 1
        3
        5
        7
        ...

Iя пытаюсь цикл for, который выглядит примерно так

for value in MyList: 
     print(value[key_nucleotide_position])
     print('\n')

Однако вместо того, чтобы печатать то, что я хочу, это будет

t
t
t

g
c
t

a
g
a

t
t
g

Я получаю только это

t

t

g 

Мне удалось заставить его работать, когда я помещаю цикл for в другой цикл for, но это просто дает мне очень длинную последовательность нуклеотидов (497 строк) в этом формате

a
t
t
g
g
c
g
...

который я знаю, как анализировать, но не как разбивать его так, как я хочу, чтобы он был разбит, что будет каждые 91 нуклеотид - даже тогда, возвращаемое значение не совсем имеет смысл для числа нуклеотидовЯ должен получить.

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 03 марта 2019

Самый простой способ помочь с подробной информацией.Я сделаю вывод, что это связано со школой и постараюсь указать вам правильное направление.Наиболее полезно размещать воспроизводимые примеры, чтобы кто-то мог легко воссоздать настройку и устранить неполадки.Попробуйте использовать такие вещи, как gists или pastebin , если у вас длинные файлы.

Из вашего описания, я думаю, у вас есть:

  • aсписок небольших последовательностей
  • текстовый файл чисел, по одному на строку

Я думаю, что вы хотите взять свой список n последовательностей, перебрать целые числа в вашем файлеkey_nucleotide_position целых чисел и извлеките элемент ith из MyList?

Давайте просто пройдемся по тому, что вы делаете, сначала посмотрим, как вы перебираете MyList:

MyList = ['cttgaaat', 'attcggat', 'gtatcaag']
for value in MyList: 
     print(value)

cttgaaat
attcggat
gtatcaag

Предполагая, что число (скажем, 3) хранится в переменной key_nucleotide_position, вы делаете это с каждым циклом:

MyList = ['cttgaaat', 'attcggat', 'gtatcaag']
for value in MyList:
     print(value[3])

Используя первое значение в MyList, давайте посмотримчто это делает:

'cttgaaat'[3]
g

Вы извлекаете символ ith из строки в соответствии с целочисленным срезом.

Это не совсем ясно из вопроса, но я предполагаю,вы можете изменить это и получить элемент ith из списка 1039 *, а не символ ith вСтрока.

т. е. рассмотрим:

MyList[1]

'attcggat'

Теперь, чтобы цикл for проходил таким образом, чтобы MyList[foo] изменял foo на то, что вы хотите в каждом цикле.

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