用 str 方法替换字符串中的多个元素

Hom*_*ani 0 python string replace

我正在尝试编写一个函数,该函数接受一串 DNA 并返回恭维。我已经尝试解决这个问题一段时间了,并查看了 Python 文档,但无法解决。我已经为函数编写了文档字符串,因此您可以看到答案应该是什么样子。我在这个论坛上看到过类似的问题,但我无法理解答案。如果有人可以仅使用 str 格式和循环/if 语句来解释这一点,我将不胜感激,因为我还没有详细研究过字典/列表。

我试过str.replace但无法让它适用于多个元素,尝试使用嵌套的 if 语句,但这也不起作用。然后我尝试编写 4 个单独的 for 循环,但无济于事。

def get_complementary_sequence(dna):

    """ (str) -> str

    Return the DNA sequence that is complementary 
    to the given DNA sequence.

    >>> get_complementary_sequence('AT')
    TA
    >>> get_complementary_sequence('GCTTAA')
    CGAATT

    """

    for char in dna:
        if char == A:
            dna = dna.replace('A', 'T')
        elif  char == T:
            dna = dna.replace('T', 'A')
        # ...and so on
Run Code Online (Sandbox Code Playgroud)

nne*_*neo 5

对于这样的问题,您可以将string.maketrans(str.maketrans在 Python 3 中) 与str.translate:

import string
table = string.maketrans('CGAT', 'GCTA')
print 'GCTTAA'.translate(table)
# outputs CGAATT
Run Code Online (Sandbox Code Playgroud)