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


 


Tema destacado: Píldoras formativas en seguridad de la información


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting (Moderador: Eleкtro)
| | |-+  [Python 3] Unir dos listas en una
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [Python 3] Unir dos listas en una  (Leído 486 veces)
n1sen

Desconectado Desconectado

Mensajes: 120



Ver Perfil
[Python 3] Unir dos listas en una
« en: 4 Diciembre 2017, 02:40 »

Vengo a preguntar como unir dos listas en una, he intentado con .join y .append pero no ha funcionado.
Tengo esta lista:
Código:
['STR_PRINT "Hola mundo!"']
['DIV("VOID", 5, 5)']
['INT("test", "54")']
['']

Como se ve, cada linea esta en una lista distinta. (se esta leyendo de un archivo)
Deberia estar asi:
Código:
['STR_PRINT "Hola mundo!"', 'DIV("El numero 5 en 5 cabe:", 5, 5)', 'INT("test", "54")']
Aca tengo un fragmento del codigo que me genera problema:
Código
  1. def PRG(path):
  2.    out_file = input("Output file name..: ")
  3.    with open(path, 'r') as inputfile:
  4.        with open(out_file, 'wb') as outputfile:
  5.            for f1 in inputfile:
  6.                asm_file_cont = [f1[:-1]] #El [:-1] es para quitar el salto de linea
  7.                dump(asm_file_cont, outputfile)
  8.                print(asm_file_cont)
  9.  
Saludos


« Última modificación: 4 Diciembre 2017, 05:08 por n1sen » En línea

null
aangrymasther

Desconectado Desconectado

Mensajes: 24



Ver Perfil
Re: [Python 3] Unir dos listas en una
« Respuesta #1 en: 4 Diciembre 2017, 10:16 »

No estoy seguro de que sea esto lo que quieras, pero pruebas con esto:

Código:
lista1 = ["2" , "3"]
lista2 = ["4" , "5"]

def unir(lista1 , lista2):
lista = []
for x in lista1:
lista.append(x)
for x in lista2:
lista.append(x)
return lista
for x in unir(lista1, lista2):
print x


En línea

tincopasan


Desconectado Desconectado

Mensajes: 1.021


No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: [Python 3] Unir dos listas en una
« Respuesta #2 en: 4 Diciembre 2017, 11:10 »

y ¿por qué no?:
Código
  1. lista1 = ["2" , "3"]
  2. lista2 = ["4" , "5"]
  3. print(lista1+lista2)
  4.  
En línea

aangrymasther

Desconectado Desconectado

Mensajes: 24



Ver Perfil
Re: [Python 3] Unir dos listas en una
« Respuesta #3 en: 4 Diciembre 2017, 11:17 »

y ¿por qué no?:
Código
  1. lista1 = ["2" , "3"]
  2. lista2 = ["4" , "5"]
  3. print(lista1+lista2)
  4.  
así no consigues una lista nueva que contenga las dos, solo imprimes ambas.
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.308


ASMático


Ver Perfil WWW
Re: [Python 3] Unir dos listas en una
« Respuesta #4 en: 4 Diciembre 2017, 13:31 »

así no consigues una lista nueva que contenga las dos, solo imprimes ambas.

Se entiende. En vez de print, simplemente lo asignas a una variable.
En línea

tincopasan


Desconectado Desconectado

Mensajes: 1.021


No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: [Python 3] Unir dos listas en una
« Respuesta #5 en: 4 Diciembre 2017, 13:54 »

Exacto ivancea96
aangrymasther no quise escribir lo que era obvio:
Código
  1. lista1 = ["2" , "3"]
  2. lista2 = ["4" , 5]
  3. x=lista1+lista2   #ahí está la nueva lista
  4. print(x)
  5.  
En línea

n1sen

Desconectado Desconectado

Mensajes: 120



Ver Perfil
Re: [Python 3] Unir dos listas en una
« Respuesta #6 en: 5 Diciembre 2017, 01:38 »

Gracias, pero nada me ha servido, ahora me retorna listas vacias. Y aun separadas

Código
  1. def PRG(path):
  2.    out_file = input("Output file name..: ")
  3.    with open(path, 'r') as inputfile:
  4.        with open(out_file, 'wb') as outputfile:
  5.            for f1 in inputfile:
  6.                asm_file_cont = []
  7.                f1 = [f1[:-1]]
  8.                asm_file_cont + f1
  9.                dump(asm_file_cont, outputfile)
  10.                print(asm_file_cont)
En línea

null
tincopasan


Desconectado Desconectado

Mensajes: 1.021


No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: [Python 3] Unir dos listas en una
« Respuesta #7 en: 5 Diciembre 2017, 04:35 »

la verdad que no entiendo tu lógica de programación ni lo que querés hacer, así que supongo estás leyendo un archivo y quieres escribir todo el contenido en una lista en otro.Hay formas mejores que la que usas, pero bueno arreglemos esta:

['STR_PRINT "Hola mundo!"']
['DIV("VOID", 5, 5)']
['INT("test", "54")']
['']

supongo que estas listas son el resultado de lo leído en un archivo
y tendría que quedar así:

['STR_PRINT "Hola mundo!"', 'DIV("El numero 5 en 5 cabe:", 5, 5)', 'INT("test", "54")']  según lo que pusiste eso ya requiere mucho más código porque debe interpretar que es:'DIV("VOID", 5, 5)']
Ahora bien sigamos suponiendo y fue un error de copia y unicamente leo las líneas tal cual y las paso a una lista con tu código:
Código
  1.    def PRG(path):
  2.        out_file = input("Output file name..: ")
  3.        with open(path, 'r') as inputfile:
  4.            with open(out_file, 'wb') as outputfile:
  5.                for f1 in inputfile:
  6.                    asm_file_cont = []    #cada vez que recorra el for la lista vuelve a estar vacía
  7.                    f1 = [f1[:-1]]
  8.                    asm_file_cont + f1
  9.                    dump(asm_file_cont, outputfile)
  10.                    print(asm_file_cont)   #acá se verá en cada iteración  
  11.  
en fin probá esto:
Código
  1. def PRG(path):
  2.    asm_file_cont = []
  3.    out_file = input("Output file name..: ")
  4.    with open(path, 'r') as inputfile:
  5.        with open(out_file, 'wb') as outputfile:
  6.            for f1 in inputfile:
  7.                f1 = [f1[:-1]]
  8.                asm_file_cont.append(" ".join(f1))#por tu ejemplo lo convierto a cadena
  9.                #dump(asm_file_cont, outputfile)  lo anulé porque no tengo idea que es dump
  10.                                                                 #supogo que es para escribir el contenido en el otro archivo
  11.    print(asm_file_cont)
  12.  
« Última modificación: 5 Diciembre 2017, 04:43 por tincopasan » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.308


ASMático


Ver Perfil WWW
Re: [Python 3] Unir dos listas en una
« Respuesta #8 en: 5 Diciembre 2017, 15:11 »

No asignaste el resultado de la suma a la variable:
Código
  1. asm_file_cont = asm_file_cont + f1
En línea

tincopasan


Desconectado Desconectado

Mensajes: 1.021


No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: [Python 3] Unir dos listas en una
« Respuesta #9 en: 5 Diciembre 2017, 15:20 »

 ivancea96  esa es una forma, esta es más parecida a la que él quería usar
Código
  1. asm_file_cont +=  f1

no la use porque antes dijo que no le andaba el append y el join
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
listas en Python
Ejercicios
xxxkroxxx 1 2,452 Último mensaje 12 Noviembre 2009, 22:58
por h0oke
[Python] sustituir listas
Scripting
Meta 9 6,098 Último mensaje 17 Septiembre 2017, 08:58
por Novlucker
[Python] - Eliminar listas y par « 1 2 »
Scripting
Meta 12 7,259 Último mensaje 25 Noviembre 2010, 11:45
por Novlucker
Python, Listas
Scripting
guillehampp 3 1,155 Último mensaje 21 Noviembre 2014, 22:35
por guillehampp
Listas en python
Scripting
tincopasan 1 1,211 Último mensaje 17 Julio 2016, 17:04
por cerototal
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines