Python reemplaza múltiples elementos en cadena con métodos str

Hola estoy aprendiendo a progtwigr con python. Estoy tratando de escribir una función que toma una cadena de ADN y devuelve el cumplido. He estado tratando de resolver esto por un tiempo y revisé la documentación de Python, pero no pude resolverlo. He escrito la cadena de documentos para la función para que pueda ver cómo debería verse la respuesta. He visto una pregunta similar en este foro pero no pude entender las respuestas. Le agradecería que alguien pudiera explicarlo utilizando solo el formato de str y los bucles / if enunciados, ya que aún no he estudiado los diccionarios / listas en detalle. gracias de antemano

Intenté str.replace pero no pude hacer que funcionara para varios elementos, intenté anidar si las sentencias y esto tampoco funcionó. Luego intenté escribir 4 por separado para bucles, pero fue en vano.

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 

Puede asignar cada letra a otra letra.

Probablemente no necesite crear una tabla de traducción con todas las combinaciones posibles.

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

Cómo funciona esto:

 # 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'] 

El método join () devuelve una cadena en la que los elementos de secuencia de la secuencia se han unido mediante un separador de str.

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

Para un problema como este, puedes usar string.maketrans ( str.maketrans en Python 3) combinado con str.translate :

 import string table = string.maketrans('CGAT', 'GCTA') print 'GCTTAA'.translate(table) # outputs CGAATT