首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用字符映射替换字符串中的字符?

如何使用字符映射替换字符串中的字符?
EN

Stack Overflow用户
提问于 2015-10-23 21:19:31
回答 5查看 1.1K关注 0票数 0

代码用途:

我提供一个字符串并将其与字典键匹配;如果键与字符串匹配,则打印字典值。

下面是代码:

代码语言:javascript
复制
def to_rna(dna_input):
    dna_rna = {'A':'U', 'C':'G', 'G':'C', 'T':'A'}
    rna = []
    for key in dna_rna.iterkeys():
        if key in dna_input:
            rna.append(dna_rna[key])
    print "".join(rna)

to_rna("ACGTGGTCTTAA") #the string input

问题:

结果应该是'UGCACCAGAAUU‘,但我得到的只是'UGAC’。问题似乎是我在字符串中有重复字符,而循环忽略了这一点。如何循环字典,使其返回字典值的次数与找到dict键的次数一样多?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-10-23 21:22:54

如果要为dna_input中的每个字符输出一个字符,则需要在dna_input中对字符进行迭代。注意,get()函数为字典中没有的字符提供了默认设置。我什么也不做,如果愿意的话,你可以在这里放一个n,或者放一个X。

代码语言:javascript
复制
rna.append(dna_rna.get(char, 'n'))

您的代码只在dna_rna字典中的4个条目上迭代。

代码语言:javascript
复制
def to_rna(dna_input):
    dna_rna = {'A':'U', 'C':'G', 'G':'C', 'T':'A'}
    rna = []
    for char in dna_input:
        rna.append(dna_rna.get(char, ''))
    print "".join(rna)

to_rna("ACGTGGTCTTAA") #the string input

然而,这并不是转换字符串的最有效的方法。

票数 1
EN

Stack Overflow用户

发布于 2015-10-23 21:29:10

你可以用translate()。编辑:我添加了regex来返回错误条目的- (似乎是个好主意@jh44tx ):

代码语言:javascript
复制
import string
import re
rna_trans = string.maketrans("ACGTU","UGCA-")
rna_trans = re.sub("[^UGCA]","-",rna_trans)
print "ACGTGGTCTTAA".translate(rna_trans)

由于映射为1:1,所以还可以创建反向转换:

代码语言:javascript
复制
rev_rna_trans = string.maketrans("UGCAT","ACGT-")
rev_rna_trans = re.sub("[^ACGT]","-",rna_trans)
票数 5
EN

Stack Overflow用户

发布于 2015-10-23 21:32:30

万一你有时会收到垃圾信,你可以这样做:

代码语言:javascript
复制
def to_rna(dna_input):
    dna_rna={'A':'U','C':'G','G':'C','T':'A'}
    rna=[]
    for char in dna_input:
        if char in dna_rna.keys():
            rna.append(dna_rna[char])
        else:
            rna.append('-')
    print "".join(rna)

to_rna("ACGTGGTCTTAAX")

结果表明:UGCACCAGAAUU-

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33311568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档