【问题标题】:Replace individual character elements of string替换字符串的单个字符元素
【发布时间】:2013-01-13 22:07:41
【问题描述】:

在如何从用户输入中识别字符方面需要帮助?以及如何用我自己的特定字符替换。

任务:

  1. 此程序提示用户输入 DNA 序列(A、T、C、G)并显示该 DNA 序列的反向互补序列

  2. 程序应该只接受 DNA 碱基 (A,T,C,G) 大写字母,如果不接受,则将字符转换为“x”

    李>

我的问题是在程序的第二步,如何用'x'字符替换不是大写的字母(A,C,G,T)

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)

【问题讨论】:

    标签: python string


    【解决方案1】:

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

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

    【讨论】:

    • dna = [seqcom.get(base, 'x') for base in letters] 会更快吗?我知道这会生成一个列表,但我只是想知道他们的表现如何。
    • @Pavan: 是的,''.join(seqcom.get(base, 'x') for base in letters)` 可能是,因为join 往往比重复连接要快
    猜你喜欢
    • 2012-02-27
    • 1970-01-01
    • 1970-01-01
    • 2011-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多