elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Python (Moderador: Danielㅤ)
| | |-+  [Python] problemas con las listas linkeadas...
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Python] problemas con las listas linkeadas...  (Leído 1,990 veces)
fallout20xx

Desconectado Desconectado

Mensajes: 53



Ver Perfil
[Python] problemas con las listas linkeadas...
« en: 12 Abril 2012, 16:11 pm »

Vamos a ver, estoy ultimando una transmision EDI de facturas y hay un detalle que me esta trallendo de cabeza, voy a ir poniendo cada parte del codigo.
Primero tenemos una lista con listas anidadas:
Código
  1. [sup]Form119 = [['119',  1,       3,     'A'],
  2.          [None,    4,       3,     'A'],
  3.          [None,    7,       13,    'A'],
  4.          [None,    20,      35,    'A'],
  5.          [None,    55,      35,    'A'],
  6.          [None,    90,      35,    'A'],
  7.          [None,    125,     35,    'A'],
  8.          [None,    160,     35,    'A'],
  9.          [None,    195,     35,    'A'],
  10.          [None,    230,     9,     'A'],
  11.          [None,    239,     35,    'A'],
  12.          [None,    274,     3,     'A'],
  13.          [None,    277,     35,    'A'],
  14.          [None,    312,     35,    'A'],
  15.          [None,    347,     35,    'A'],
  16.          [None,    382,     35,    'A'],
  17.          [None,    417,     35,    'A'],
  18.          [None,    452,     20,    'A'],
  19.          [None,    472,     20,    'A'],
  20.          [None,    492,     20,    'A'],
  21.          [None,    512,     3,     'A'],
  22.          [None,    515,     35,    'A'],
  23.          [None,    550,     51,    'A']][/sup]

ahora tengo que rellenar unos campos y pasarlo a texto plano, esta lista sirve para mantener los formatos durante la construccion del mensaje.
aqui es donde se rellenan:
Código
  1. [sup]    def Build_119(self, Vfac):
  2.        Inv_Prt_BYDP = list(Form119)
  3.        Inv_Prt_IV = list(Form119)
  4.        Inv_Prt_SU = list(Form119)
  5.        Respuesta = list()
  6.        Datos = EG.con("""select C_ILN, C_NOM, C_DIR, C_DIRA, COD_CPO, C_POB,
  7.                            C_NIF, C_ILNZ, C_ZON, C_FPR, C_FCP, C_FPO
  8.                            from CLIENTES, VFACTURA
  9.                            where VFACTURA.COD_C = CLIENTES.COD_C
  10.                            and COD_VFA = '%s'""" % Vfac)
  11.        Inv_Prt_BYDP[2][0] = Datos[0][0]
  12.        Inv_Prt_BYDP[3][0] = Datos[0][1]
  13.        Inv_Prt_BYDP[6][0] = Datos[0][2]
  14.        Inv_Prt_BYDP[7][0] = Datos[0][3]
  15.        Inv_Prt_BYDP[9][0] = Datos[0][4]
  16.        Inv_Prt_BYDP[10][0] = Datos[0][5]
  17.        Inv_Prt_BYDP[11][0] = 'DE'
  18.        Inv_Prt_BYDP[14][0] = Datos[0][6]
  19.  
  20.        Inv_Prt_BY =list(Inv_Prt_BYDP)
  21.        Inv_Prt_BY[1][0] = 'BY'
  22.        Respuesta.append(self.The_Builder(Inv_Prt_BY))
  23.  
  24.        Inv_Prt_DP = list(Inv_Prt_BYDP)
  25.        Inv_Prt_DP[1][0] = 'DP'
  26.        Respuesta.append(self.The_Builder(Inv_Prt_DP))
  27.  
  28.        Inv_Prt_IV[1][0] = 'IV'
  29.        Inv_Prt_IV[2][0] = Datos[0][7]
  30.        Inv_Prt_IV[3][0] = Datos[0][8]
  31.        Inv_Prt_IV[6][0] = Datos[0][9]
  32.        Inv_Prt_IV[7][0] = ''
  33.        Inv_Prt_IV[9][0] = Datos[0][10]
  34.        Inv_Prt_IV[10][0] = Datos[0][11]
  35.        Inv_Prt_IV[11][0] = 'DE'
  36.        Inv_Prt_IV[14][0] = 'DE812706034'
  37.        Respuesta.append(self.The_Builder(Inv_Prt_IV))
  38.  
  39.        Datos = EG.con("""select C_ILN, C_NOM, C_DIR, C_DIRA, COD_CPO, C_POB, C_NIF
  40.                            from CLIENTES
  41.                            where COD_C = 'EURAL'""")
  42.  
  43.        Inv_Prt_SU[1][0] = 'SU'
  44.        Inv_Prt_SU[2][0] = Datos[0][0]
  45.        Inv_Prt_SU[3][0] = Datos[0][1]
  46.        Inv_Prt_SU[6][0] = Datos[0][2]
  47.        Inv_Prt_SU[7][0] = Datos[0][3]
  48.        Inv_Prt_SU[9][0] = Datos[0][4]
  49.        Inv_Prt_SU[10][0] = Datos[0][5]
  50.        Inv_Prt_SU[11][0] = 'DE'
  51.        Inv_Prt_SU[14][0] = Datos[0][6]
  52.        Respuesta.append(self.The_Builder(Inv_Prt_SU))
  53.  
  54.        return '\n'.join(Respuesta)[/sup]

actualmente esta funcionando, pero solo porque voy convirtiendo a texto cada vez que completo una de las copias, como veis al principio de la funcion declaro que 3 ojetos son iguales a la lista anteriormente puesta, pero al acabar la funcion, da igual como lo haga, tanto Form119, Inv_Prt_BYDP, Inv_Prt_IV, Inv_Prt_SU, Inv_Prt_BY y Inv_Prt_DP son identicas, es como si estubiese machando todo el rato Form119... ¿alguien me puede decir como coño me desago del maldito link de las listas? he hecho pruebas en el Pythonwin y supuestamente declarando list(Form119) se elimina el link y puedes madificar cada una por separado, sospecho que al tener listas anidadas hay algo que esta fallando... ¿alguna ayuda?



Elektro H@cker: Usa las etiquetas de código, que para algo están.


« Última modificación: 12 Abril 2012, 17:08 pm por EleKtro H@cker » En línea

si disfrutas siempre que programas... significa que aun no has programado suficiente xD
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
listas en Python
Ejercicios
xxxkroxxx 1 5,564 Último mensaje 12 Noviembre 2009, 22:58 pm
por h0oke
[Python] - Eliminar listas y par « 1 2 »
Python
Meta 12 15,356 Último mensaje 25 Noviembre 2010, 11:45 am
por Novlucker
Python, Listas a la inversa
Scripting
Arnau27 2 9,583 Último mensaje 23 Agosto 2011, 05:55 am
por 0x5d
Python Listas ayuda
Scripting
limblimb 4 3,477 Último mensaje 19 Enero 2012, 10:58 am
por fallout20xx
Problema con listas en Python (Resuelto)
Scripting
MA40 2 6,641 Último mensaje 6 Abril 2012, 12:32 pm
por MA40
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines