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

发布于 2021-01-29 16:31:25

我正在尝试编写一个函数,该函数需要一串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
关注者
0
被浏览
172
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您可以将每个字母映射到另一个字母。

    您可能不需要创建具有所有可能组合的转换表。

    >>> M = {'A':'T', 'T':'A', 'C':'G', 'G':'C'}
    >>> STR = 'CGAATT'
    >>> S = "".join([M.get(c,c) for c in STR])
    >>> S
    'GCTTAA'
    

    工作原理:

    # this returns a list of char according to your dict M
    >>> L = [M.get(c,c) for c in STR]  
    >>> L
    ['G', 'C', 'T', 'T', 'A', 'A']
    

    join()方法返回一个字符串,其中的字符串序列元素已通过str分隔符进行了连接。

    >>> str = "-"
    >>> L = ['a','b','c']
    >>> str.join(L)
    'a-b-c'
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看