Разрыв в понимании списка - PullRequest
0 голосов
/ 08 января 2019

Как я могу заставить python добавить разрыв в середине списка понимания? Вопрос состоит в том, чтобы взять список нуклеотидов РНК и вернуть список кодонов, используя понимание списка. У меня есть следующий код:

import random
bases=["U", "A", "C", "G"]
b1=[random.choice(bases) for i in bases [0:3] '\n' for i in range(0,64)]
print(b1)

То, что я хочу сделать, это напечатать 3 варианта из баз в одном списке 63 раза. Как еще я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 08 января 2019

Вот как бы я это сделал:

from random import sample
bases=["U", "A", "C", "G"]
blen = 3
length=64
b1=[sample(bases, nlen) for _ in range(length)]

Как прокомментировал Джим, это список, и его следует использовать как один в программе, пока вы не захотите распечатать. Теперь, только когда я хочу, чтобы это было напечатано красиво (добавление разрывов строк a.k.a):

print('\n'.join(str(x) for x in b1))

или если вам нужен какой-нибудь красивый формат что-то вроде:

print('\n'.join("A: {} B: {} C: {}".format(*x) for x in b1))

Если вы используете его часто, я бы обернул его в функцию:

def printRNA(rna):
    print('\n'.join("A: {} B: {} C: {}".format(*x) for x in rna))

Если ваша цель - написать трехстрочный сценарий, который просто печатает это, я бы не использовал понимание:

from random import sample
bases=["U", "A", "C", "G"]
blen = 3
length=64
for _ in range(length)
    print("A: {} B: {} C: {}".format(*sample(bases, nlen)))

или любой другой формат, который вы хотели.

0 голосов
/ 08 января 2019

используйте что-то вроде этого.

b1=[[random.choices(bases) for _ in range(3)] for i in range(0,64)]
print(b1)

Полагаю, это ваша работа.

это вернет выходной список опций с подсписком вариантов.

[['G', 'U', 'C'], ['U', 'U', 'C'], ['A', 'A', 'G'], ['G', 'G', 'U'], ['A', 'A', 'A'], ['U', 'U', 'A'], ['C', 'A', 'A'], ['G', 'A', 'U'], ['G', 'A', 'G'], ['A', 'G', 'G'], ['A', 'A', 'C'], ['C', 'U', 'C'], ['U', 'U', 'A'], ['G', 'U', 'U'], ['U', 'A', 'A'], ['U', 'U', 'U'], ['U', 'C', 'G'], ['G', 'A', 'C'], ['G', 'A', 'U'], ['G', 'C', 'A'], ['U', 'U', 'U'], ['C', 'G', 'G'], ['U', 'A', 'U'], ['U', 'U', 'A'], ['A', 'U', 'C'], ['C', 'G', 'G'], ['C', 'G', 'G'], ['U', 'U', 'U'], ['U', 'A', 'U'], ['G', 'G', 'A'], ['U', 'C', 'G'], ['G', 'C', 'C'], ['G', 'U', 'C'], ['G', 'A', 'A'], ['A', 'C', 'U'], ['G', 'C', 'C'], ['G', 'A', 'U'], ['A', 'G', 'A'], ['G', 'G', 'C'], ['G', 'A', 'C'], ['C', 'A', 'A'], ['U', 'C', 'C'], ['C', 'C', 'G'], ['C', 'C', 'C'], ['G', 'A', 'A'], ['U', 'U', 'G'], ['C', 'C', 'G'], ['A', 'C', 'U'], ['C', 'G', 'C'], ['U', 'G', 'C'], ['G', 'A', 'C'], ['U', 'C', 'A'], ['G', 'A', 'U'], ['C', 'A', 'U'], ['U', 'U', 'C'], ['G', 'A', 'G'], ['C', 'U', 'A'], ['A', 'G', 'G'], ['A', 'G', 'U'], ['G', 'C', 'G'], ['C', 'G', 'U'], ['G', 'A', 'U'], ['G', 'A', 'A'], ['U', 'A', 'U']]
...