2013-01-13 39 views
2

我需要帮助以了解如何从用户输入中识别字符?以及如何取代我自己的特定角色。替换字符串中的单个字符元素

任务:

  1. 此程序提示用户输入一个DNA序列(A,T,C,G),并显示DNA序列

  2. 的的反向互补程序只应接受DNA碱基(A,T,C,G)大写字母,如果不是,则将该字符转换为'x'

我的问题是在程序中,在如何更换不在大写的字母的第二个步骤(A,C,G,T)与“x”的字符

seq= input('Enter a DNA sequence ') 

seqcom = {'A':'T','C':'G','T':'A','G':'C'} # dictionary 

letters = list(seq) 
letters.reverse() 
dna ='' 

for base in letters: 
    dna += seqcom[base] 


print('The reverse complement of \n', seq, '\n', 'is\n', dna) 

回答

3

你想:dict.get(key[, default])

for base in letters: 
    dna += seqcom.get(base, 'x') 
+0

''dna = [seqcom.get(base,'x')for base in letters]'会更快吗?我知道这会产生一个列表,但我只是想知道他们会如何表现。 –

+0

@Pavan:是的,''.join(seqcom.get(base,'x')以字母为基础)''可能会,因为'join'往往比重复连接快。 – Eric

+0

非常感谢您的快速帮助... 它确实工作! – MEhsan