Autor
|
Tema: [Python 3] Unir dos listas en una (Leído 9,635 veces)
|
n1sen
Desconectado
Mensajes: 122
|
Vengo a preguntar como unir dos listas en una, he intentado con .join y .append pero no ha funcionado. Tengo esta lista: ['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: ['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: def PRG(path): out_file = input("Output file name..: ") with open(path, 'r') as inputfile: with open(out_file, 'wb') as outputfile: for f1 in inputfile: asm_file_cont = [f1[:-1]] #El [:-1] es para quitar el salto de linea dump(asm_file_cont, outputfile) print(asm_file_cont)
Saludos
|
|
« Última modificación: 4 Diciembre 2017, 05:08 am por n1sen »
|
En línea
|
null
|
|
|
aangrymasther
Desconectado
Mensajes: 69
Zona especial Este
|
No estoy seguro de que sea esto lo que quieras, pero pruebas con esto: 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
|
Probablemente el 99% de lo que digo sea incorrecto
|
|
|
tincopasan
Desconectado
Mensajes: 1.286
No es lo mismo conocer el camino que recorrerlo.
|
y ¿por qué no?: lista1 = ["2" , "3"] lista2 = ["4" , "5"] print(lista1+lista2)
|
|
|
En línea
|
|
|
|
aangrymasther
Desconectado
Mensajes: 69
Zona especial Este
|
y ¿por qué no?: lista1 = ["2" , "3"] lista2 = ["4" , "5"] print(lista1+lista2)
así no consigues una lista nueva que contenga las dos, solo imprimes ambas.
|
|
|
En línea
|
Probablemente el 99% de lo que digo sea incorrecto
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
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
Mensajes: 1.286
No es lo mismo conocer el camino que recorrerlo.
|
Exacto ivancea96 aangrymasther no quise escribir lo que era obvio: lista1 = ["2" , "3"] lista2 = ["4" , 5] x=lista1+lista2 #ahí está la nueva lista print(x)
|
|
|
En línea
|
|
|
|
n1sen
Desconectado
Mensajes: 122
|
Gracias, pero nada me ha servido, ahora me retorna listas vacias. Y aun separadas def PRG(path): out_file = input("Output file name..: ") with open(path, 'r') as inputfile: with open(out_file, 'wb') as outputfile: for f1 in inputfile: asm_file_cont = [] f1 = [f1[:-1]] asm_file_cont + f1 dump(asm_file_cont, outputfile) print(asm_file_cont)
|
|
|
En línea
|
null
|
|
|
tincopasan
Desconectado
Mensajes: 1.286
No es lo mismo conocer el camino que recorrerlo.
|
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: def PRG(path): out_file = input("Output file name..: ") with open(path, 'r') as inputfile: with open(out_file, 'wb') as outputfile: for f1 in inputfile: asm_file_cont = [] #cada vez que recorra el for la lista vuelve a estar vacía f1 = [f1[:-1]] asm_file_cont + f1 dump(asm_file_cont, outputfile) print(asm_file_cont) #acá se verá en cada iteración
en fin probá esto: def PRG(path): asm_file_cont = [] out_file = input("Output file name..: ") with open(path, 'r') as inputfile: with open(out_file, 'wb') as outputfile: for f1 in inputfile: f1 = [f1[:-1]] asm_file_cont.append(" ".join(f1))#por tu ejemplo lo convierto a cadena #dump(asm_file_cont, outputfile) lo anulé porque no tengo idea que es dump #supogo que es para escribir el contenido en el otro archivo print(asm_file_cont)
|
|
« Última modificación: 5 Diciembre 2017, 04:43 am por tincopasan »
|
En línea
|
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
No asignaste el resultado de la suma a la variable: asm_file_cont = asm_file_cont + f1
|
|
|
En línea
|
|
|
|
tincopasan
Desconectado
Mensajes: 1.286
No es lo mismo conocer el camino que recorrerlo.
|
ivancea96 esa es una forma, esta es más parecida a la que él quería usar asm_file_cont += f1
no la use porque antes dijo que no le andaba el append y el join
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
listas en Python
Ejercicios
|
xxxkroxxx
|
1
|
4,839
|
12 Noviembre 2009, 22:58 pm
por h0oke
|
|
|
[Python] sustituir listas
Scripting
|
Meta
|
9
|
12,738
|
17 Septiembre 2017, 08:58 am
por Novlucker
|
|
|
[Python] - Eliminar listas y par
« 1 2 »
Scripting
|
Meta
|
12
|
14,693
|
25 Noviembre 2010, 11:45 am
por Novlucker
|
|
|
Python, Listas
Scripting
|
guillehampp
|
3
|
3,230
|
21 Noviembre 2014, 22:35 pm
por guillehampp
|
|
|
Listas en python
Scripting
|
tincopasan
|
1
|
2,787
|
17 Julio 2016, 17:04 pm
por cerototal
|
|