usuario1452759
Tengo muchas listas:
['it']
['was']
['annoying']
Quiero fusionarlos en una sola lista:
['it', 'was', 'annoying']
import itertools
ab = itertools.chain(['it'], ['was'], ['annoying'])
list(ab)
Solo otro metodo….
-
Ok, hay un archivo que tiene diferentes palabras en ellas. he hecho s = [word] para poner cada palabra del archivo en la lista. Pero crea listas separadas (print s devuelve [‘it]’][‘was’][‘annoying’]) como mencioné anteriormente. Quiero fusionarlos todos en una lista.
– usuario1452759
20 de julio de 2012 a las 7:05
-
@usuario1452759
list(itertools.chain(['it'], ['was'], ['annoying']))
da['it', 'was', 'annnoying']
. ¿Es eso diferente de lo que quieres?– lvc
20 de julio de 2012 a las 7:15
-
Si la entrada es una lista de listas, usando el
from_iterable
función comoab = list(itertools.chain.from_iterable([['it'], ['was'], ['annoying']]))
sería dar la respuesta que el OP espera– Fnord
22 de marzo de 2017 a las 18:45
-
También podrías pasarlo como un
*args
diciendo:itertools.chain(*my_list_of_lists)
.– Oxcug
21 de julio de 2017 a las 19:39
-
@BallpointBen No, porque
from_iterable
acepta cualquier iterable, que puede ser, por ejemplo, un generador que devuelve listas posteriores.– Michael Goral
24 de mayo de 2019 a las 9:16
Solo agrégalos:
['it'] + ['was'] + ['annoying']
deberías leer el tutorial de python para aprender información básica como esta.
-
Resolviste el caso i=3, ¿qué tal i=n?
– William Entriken
15 de agosto de 2017 a las 2:30
-
@Full Decent, gracias por señalar esto, no pensé en ese caso. Pero creo que si es el caso, puede hacer un bucle en las listas y concatenarlas. Para mí, solo necesito la forma más coma para unir 2 listas sin elementos duplicados.
– zhihong
29 de septiembre de 2017 a las 13:54
-
@zhihong Hola, ha pasado más de un año completo, pero puedes usar algo como
mylist = list(set(mylist))
después de fusionar listas para deshacerse de los duplicados.– gatitoparry
19 de diciembre de 2018 a las 1:21
-
@WilliamEntriken, técnicamente puede usar compilación en suma, por ejemplo
sum(mylist, [])
pero no es muy optimizar.– Zen3515
13 de julio de 2019 a las 4:41
-
Para i = n caso, también puede usar
reduce(lambda l1, l2: l1+l2, lists)
dóndelists
es una lista o una tupla de las listas.– Sayyor Y.
16 ene 2021 a las 8:00
a = ['it']
b = ['was']
c = ['annoying']
a.extend(b)
a.extend(c)
# a now equals ['it', 'was', 'annoying']
-
Sí, pero si no está seguro de la longitud de la lista (que se utilizará para extender la lista principal), ¿cómo voy a extenderla? ¿Es posible de todos modos usar el método de corte para tratar con listas de longitud variable?
– difractado
20 de julio de 2016 a las 13:28
Esto no es realmente un duplicado de eso. Esa pregunta es cómo aplanar una lista de listas anidadas. Esta pregunta es mucho más básica y solo pregunta cómo concatenar listas individuales.
– BrenBarn
20 de julio de 2012 a las 6:55
@BrenBarn Eso es exactamente lo que estoy preguntando.
– usuario1452759
20 de julio de 2012 a las 7:08
Concatenar listas individuales es aplanar una lista de listas. O las “listas individuales” ya están en una lista, o están en variables separadas que deberían recopilarse en una lista (u otra secuencia) de todos modos.
– Karl Knechtel
6 de septiembre a las 6:16