[Python-es] multiasignación de variables

Pablo Angulo pablo.angulo en uam.es
Vie Abr 30 11:38:45 CEST 2010


Otra opción más pedestre: genera el codigo python con un script python,
copias y pegas:

for nombre_var in nombres_variables:
    nombre_col = nombres_variables[nombre_var]
    print '%s = xml_none(busqueda_xml ('usuario', %s))'%(nombre_var,
nombre_col)



monoBOT escribió:
>
> Seguro que existen métidos para la multiasignación de variables, pero
> yo no lo conozco, bueno en realidad conozco uno:
>
> variable1, variable2,variable3, variable4, variable5, variable6 = 1,2,3,4,5,6
>
> print variable1
>
> 1
>
> pero éste método es un poco lento para lo que yo necesito… yo tengo en
> mi programa varios sitios donde hago asignación masiva de variables
> del tipo
> variable busca el valor aki1 y aki2
> … de tal forma que es una lista enorme tal como esta:
>
>         self.nombre_fichero = xml_none(busqueda_xml ('usuario', 'nombre'))
>         self.primerapellido_fichero = xml_none(busqueda_xml ('usuario', 'primerapellido'))
>         self.segundoapellido_fichero = xml_none(busqueda_xml ('usuario', 'segundoapellido'))
>         self.dni_fichero = xml_none(busqueda_xml ('usuario', 'dni'))
>         self.direccion_fichero = xml_none(busqueda_xml ('usuario', 'direccion'))
>         self.codigopostal_fichero = xml_none(busqueda_xml ('usuario', 'codigopostal'))
>         self.poblacion_fichero = xml_none(busqueda_xml ('usuario', 'poblacion'))
>         self.provincia_fichero = busqueda_xml ('usuario', 'provincia')
> y así hasta 50 variables seguidas
>
> lo cual hace bastante feo el código… se me ocurría hacer algo así:
>
> lista = (A1, 'A2', 'A3', B1, 'B2', 'B3', ...)
> for m in range (0,len(lista),3):
> lista[m] = busqueda (lista[m+1], lista[m+2])
>
> pero lo que hace es sustituir el valor de las casillas m por el valor
> asignado. luego se me ocurrió hacerlo mediante una tupla ya que como
> el valor es inmutable se podría asignar el valor a la variable.
> ya que de hecho el ejemplo del principio lo que se hace es darle a la
> tupla el valor directamente.
>
> tupla = (A1, B1, C1, ...)
> lista = (A2, A3, B2, B3, C2, C3, ...)
> for m in range (0, len(lista), 2):
>     tupla[m] = busqueda(lista[m], lista[m+1])
>
> éste método tampoco funciona puesto que dice qeu el valor de la tupla
> es inmutable… me quedé sin ideas.
>
>
> EN DEFINITIVA … alguien me puede aconsejar algún metodo de asignación
> masiva de variables?? … gracias
>
>
> -- 
> monobotblog.alvarezalonso.es <http://monobotblog.alvarezalonso.es>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>   



Más información sobre la lista de distribución Python-es