Foros del Web » Programando para Internet » Python »

Diccionarios...y empezando en python jeje

Estas en el tema de Diccionarios...y empezando en python jeje en el foro de Python en Foros del Web. Hola a todos, Estoy realizando un script del cual mi mayor problema és el siguiente: Tengo una serie de datos en un diccionario (llamémosle a) ...
  #1 (permalink)  
Antiguo 31/07/2009, 04:29
 
Fecha de Ingreso: abril-2004
Mensajes: 39
Antigüedad: 20 años
Puntos: 2
Diccionarios...y empezando en python jeje

Hola a todos,

Estoy realizando un script del cual mi mayor problema és el siguiente:

Tengo una serie de datos en un diccionario (llamémosle a) que contiene:

Código PHP:
  a = {'TTA':'Leu''TTT':'Phe'.........} 
#el diccionario contiene más datos pero para mi duda me vale solo con eso

si yo tengo un string de caracteres tal que:

Código PHP:
 cadena ACTTTTACCTAGTTGACTA 
# és un ejemplo la cadena està inventada

como puedo recorrer el diccionario para sustituir las LETRAS EN MAYÚSCULA por las letras que no lo són, tal y como hace referencia el diccionario?????


El resultado final tendria que quedar de la siguiente manera:

Código PHP:
cadena ACTTTTACCTAGTTGACTA 

                         cadena_nueva 
SerPheAlaMetValSer                 

#el diccionario contiene toda una serie de valores para poder sustituir cualquier combinación A,C,T y G de 3 letras. 

Llevo días buscando una solución al tema y no la encuentro, estaría muy agradecido si alguien me pudiera ayudar con los diccionarios
__________________
Caiman Systems - Diseño y programación de aplicaciones de gestión y páginas web
  #2 (permalink)  
Antiguo 31/07/2009, 15:56
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Diccionarios...y empezando en python jeje

Dado que no tengo el diccionario con todos los valores:
Código python:
Ver original
  1. dic = {} #Aqui va el diccionario con todos los valores
  2. def split_seq(seq, size):
  3.     """ Divide una lista, en bloques del tamaño dado """
  4.     return [seq[i:i+size] for i in range(0, len(seq), size)]
  5.  
  6. def translate(s, d):
  7.     ns = ""
  8.     for i in split_seq(s, 3):
  9.         ns += d[i]
  10.     return ns
  11.  
  12. cadena = "ACTTTTACCTAGTTGACT"
  13. nueva_cadena = translate(cadena, dic)
  #3 (permalink)  
Antiguo 01/08/2009, 12:32
Usuario no validado
 
Fecha de Ingreso: septiembre-2008
Ubicación: Cuba
Mensajes: 34
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Diccionarios...y empezando en python jeje

Otra solucion puede ser la siguiente:

def translateSeq(seq, cod):
""" retorna la secuencia convertida segun el codigo """
ns=""
while len(seq)>2:
try:
ns +=cod[seq[:3]]
except KeyError:
pass
seq = seq[3:]
return ns
  #4 (permalink)  
Antiguo 01/08/2009, 12:34
Usuario no validado
 
Fecha de Ingreso: septiembre-2008
Ubicación: Cuba
Mensajes: 34
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Diccionarios...y empezando en python jeje

otra solucion puede ser la siguiente

Código PHP:
def translateSeq(seqcod):
       
""" retorna la secuencia convertida segun el codigo """
       
ns=""       
       
while len(seq)>2:
         try:
             
ns +=cod[seq[:3]]  
         
except  KeyError:
           
pass 
         seq 
seq[3:]
       return 
ns 
Un saludo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:57.