Python程序问题

时间:2015-10-08 20:08:58

标签: python

所以我几天来一直在研究这个python代码。我正在尝试解码我​​之前制作的零码代码。简单地说就是隐藏基因组代码......

binary = raw_input ('Enter binary code:')

binary = binary.replace('00', 'A')
binary = binary.replace('01', 'C')
binary = binary.replace('10', 'G')
binary = binary.replace('11', 'T')

print binary

我的问题是,它会接受像0110 = CG这样的东西。但是当我添加任何字符后,它会变得混乱,就像011011应该是CGT而不是C1CC1。如果有人能够识别出这个问题,甚至可以解决这个问题。

3 个答案:

答案 0 :(得分:4)

反复取下两个字符并解码它们

s = "100101001010101010110"

decode = {'00':'A', '01':'C', '10':'G', '11':'T'}

while s:
    (code, s) = (s[:2], s[2:])
    print decode[code]

答案 1 :(得分:0)

在下面的代码中,为了清楚起见,省略了错误检查

a='011011'
rep={'00': 'A','01': 'C','10':'G','11': 'T'}
res=''

for x in xrange(0,len(a),2):
    res+=rep[a[x]+a[x+1]]

print res

在这里,您只需将字符串拆分为长度为2的某些块,然后将这些块中的每一个用作字典的键。

答案 2 :(得分:0)

一个班轮!可能没用,但只是为了好玩:

"".join([ {'00':'A', '01':'C', '10':'G', '11':'T'}[code] for code in [ binary[i:i+2] for i in range(0,len(binary),2) ]])

是的,我沉迷于列表推导。